Voglio crittografare un mucchio di stringhe usando openssl. Come faccio a passare il testo in chiaro nella console ad openssl (invece di specificare il file di input che ha il testo in chiaro).
La pagina man di openssl ha solo queste due opzioni relative all'input/output:
-in <file> input file
-out <file> output file
Ecco cosa ho provato finora:
Funziona bene,
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt -out encrypted.txt
Se ometto il parametro -out, ottengo una stringa crittografata nella console,
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 -in plain.txt
Ma se ometto sia -in che -out, ottengo un errore:opzione sconosciuta "Encrypt ME",
openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000 "Encrypt ME"
Risposta accettata:
Usa questo:
[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
Oppure potresti usare la sostituzione del comando:
[email protected]:~$ openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv \
00000000000000000000000000000000 -in <(echo "my string to encrypt") -out encrypted.txt