Posso crittografare un messaggio (stringa) usando una chiave pubblica al prompt dei comandi? Inoltre, come posso decifrare il risultato in seguito?
Posso crittografare un messaggio (stringa) usando una chiave pubblica al prompt dei comandi? Inoltre, come posso decifrare il risultato in seguito?
Risposte:
Un'altra opzione è openssl
:
# generate a 2048-bit RSA key and store it in key.txt
openssl genrsa -out key.txt 2048
# encrypt "hello world" using the RSA key in key.txt
echo "hello world" | openssl rsautl -inkey key.txt -encrypt >output.bin
# decrypt the message and output to stdout
openssl rsautl -inkey key.txt -decrypt <output.bin
Se hai gpg
installato, questo è un metodo di crittografia di livello industriale.
gpg --encrypt -r recipient@example.com> tempfile
Digitare i dati sulla console e premere Ctrl+Dper terminare il testo. Questo ti darà dati criptati tempfile
. Per decifrare:
gpg --decrypt <tempfile
Sarà necessaria la passphrase per recipient@example.com
decrittografare il messaggio.
gpg --encrypt -r recipient@example.com >tempfile gpg: error retrieving 'recipient@example.com' via WKD: No data gpg: recipient@example.com: skipped: No data gpg: [stdin]: encryption failed: No data
(Sono su un mac)
Genera una coppia di chiavi privata / pubblica
$ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
Crittografare la stringa utilizzando la chiave pubblica e archiviarla in un file
$ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
Annulla la crittografia utilizzando la chiave privata
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
Nota:
cripta implementa una macchina a un rotore progettata secondo le linee dell'enigma tedesco, ma con un rotore a 256 elementi. I metodi di attacco su tali macchine sono ampiamente noti, quindi crypt offre una sicurezza minima.
Ma va bene per scopi dimostrativi.