Overview
openssl-enc is a powerful tool that leverages the OpenSSL library to perform symmetric encryption/decryption operations. It can handle files, standard input/output streams, and supports a variety of encryption algorithms and key derivation methods.
Key Features
These are the core features provided by the openssl-enc command.
- Supports various symmetric encryption algorithms (AES, DES, Triple DES, etc.)
- Enhanced security through Password-Based Key Derivation (PBKDF2)
- Encryption/decryption of files and standard input/output streams
- Protection against brute-force attacks by automatically using salt
Key Options
The openssl-enc command offers various options for encryption methods, input/output files, and key derivation settings.
Modes and Algorithms
Input/Output and Key Derivation
Generated command:
Try combining the commands.
Description:
`openssl-enc` Executes the command.
Combine the above options to virtually execute commands with AI.
Usage Examples
Practical examples of encrypting and decrypting using the openssl-enc command.
Encrypting a File (AES-256-CBC)
openssl enc -aes-256-cbc -salt -in original.txt -out encrypted.enc
Encrypts the original.txt file using AES-256-CBC and saves it as encrypted.enc. The password will be prompted interactively.
Decrypting an Encrypted File
openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt
Decrypts the encrypted.enc file and saves it as decrypted.txt. You need to enter the same password used during encryption.
Encryption Using Standard Input/Output
echo "This is a secret message to be encrypted." | openssl enc -aes-256-cbc -salt -out secret_message.enc
Encrypts text provided via standard input and outputs the result to standard output. (Redirected to a file in this example)
Decrypting with Password Passed via Environment Variable
export MY_SECRET_PASS="MyStrongPassword123"
openssl enc -d -aes-256-cbc -in secret_message.enc -out decrypted_message.txt -pass env:MY_SECRET_PASS
A method to pass the password stored in an environment variable for security purposes (to prevent exposure in shell history).
Tips & Precautions
Tips and precautions for using openssl-enc safely and efficiently.
Security Recommendations
It is recommended to adhere to the following for data security:
- **Use Strong Passwords**: Use long and complex passwords that are difficult to guess.
- **Use Salt**: The `-salt` option is enabled by default and increases resistance to brute-force attacks. Avoid using `-nosalt` unless absolutely necessary.
- **Utilize PBKDF2**: The `-pbkdf2` option helps securely derive encryption keys from passwords. It is enabled by default.
- **Choose Modern Algorithms**: It is advisable to use modern, strong algorithms like AES-256-CBC or AES-256-GCM. DES or 3DES may have security vulnerabilities.
Password Management
Methods for handling passwords securely:
- **Avoid Direct Command-Line Input**: Entering passwords directly on the command line (e.g., `-pass pass:PASSWORD`) is a security risk as it can be logged in shell history. It is recommended to use interactive prompts, environment variables (`-pass env:VAR`), or read from a file (`-pass file:PATH`).
- **Password File Permissions**: If storing passwords in a file, strictly limit the file's access permissions (e.g., `chmod 600 password.txt`).
Caution with File Overwriting
If the output file specified with the `-out` option already exists, `openssl-enc` may overwrite it without warning. Be careful to avoid losing important files.