Come posso crittografare una stringa nella shell?


20

Posso crittografare un messaggio (stringa) usando una chiave pubblica al prompt dei comandi? Inoltre, come posso decifrare il risultato in seguito?

Risposte:


28

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

+1 per openssl poiché è più comunemente installato di quanto sia gpg
Doug Harris,

Questo è perfetto - funziona su Mac, Alpine, qualsiasi cosa ... buon lavoro!
Jeremy Iglehart,

sì, che ne dici di un esempio che non utilizza un file ma un argomento?
Alexander Mills,

11

Se hai gpginstallato, 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.comdecrittografare il messaggio.


ok, quindi se la passphrase deve essere inserita in modo interattivo, come farlo in modo non interattivo? Come si fa in modo non interattivo?
Alexander Mills,

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)
Alexander Mills

5
  1. 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
    
  2. 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
    
  3. Annulla la crittografia utilizzando la chiave privata

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    

4

man crypt (1)

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.


"Oracle Solaris 10 8/11 Information Library"
Sebas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.