Chci zašifrovat spoustu řetězců pomocí openssl. Jak předám prostý text v konzole do openssl (místo zadání vstupního souboru, který má prostý text).
manuálová stránka openssl má pouze tyto dvě možnosti týkající se vstupu/výstupu:
-in <file> input file
-out <file> output file
Zde je to, co jsem zatím zkoušel:
Funguje to dobře,
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt -out encrypted.txt
Pokud vynechám parametr -out, dostanu do konzole zašifrovaný řetězec
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt
Ale pokud vynechám oba -in a -out, zobrazí se chyba – neznámá možnost ‚Encrypt ME‘,
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 "Encrypt ME"
Přijatá odpověď:
Použijte toto:
[email protected]:~$ echo "my string to encrypt" | openssl aes-256-cbc -e -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=
[email protected]:~$ echo "a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=" | openssl aes-256-cbc -d -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
my string to encrypt
Nebo můžete použít substituci příkazů:
[email protected]:~$ openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv \
00000000000000000000000000000000 -in <(echo "my string to encrypt") -out encrypted.txt