Давайте рассмотрим различные способы предоставления пароля шифрования при использовании утилиты OpenSSL.
Возможно, не напрямую, но я уже упоминал об этом в нескольких сообщениях в блогах, поэтому позвольте мне подвести итог.
Версия OpenSSL
$ openssl version
OpenSSL 1.1.1f 31 Mar 2020
Зашифруем файл, используя пароль, предоставленный из стандартного ввода (stdout).
$ echo "password" | openssl enc -aes-256-cbc -in archive.tgz -out archive.tgz.enc -pbkdf2 -pass stdin
Расшифруем файл, используя пароль, указанный в командной строке.
$ openssl enc -aes-256-cbc -d -in archive.tgz.enc -out archive.tgz -pbkdf2 -pass pass:password
Зашифруем файл, используя пароль, предоставленный из определенного файла.
$ cat /home/milosz/Projects/openssl/password.txt
password
$ openssl enc -aes-256-cbc -in archive.tgz -out archive.tgz.enc -pbkdf2 -pass file:/home/milosz/Projects/openssl/password.txt
Расшифруем файл, используя пароль, указанный в переменной окружения.
$ export PASSWORD="password"
$ openssl enc -aes-256-cbc -d -in archive.tgz.enc -out archive.tgz -pbkdf2 -pass env:PASSWORD
$ unset PASSWORD
Расшифруем файл, используя пароль, предоставленный дескриптором файла.
$ exec 5< <(echo password)
$ openssl enc -aes-256-cbc -d -in archive.tgz.enc -out archive.tgz -pbkdf2 -pass fd:5
$ exec 5>&-