Wie kann ich eine Zeichenfolge in der Shell verschlüsseln?

20

Kann ich eine Nachricht (Zeichenfolge) mit einem öffentlichen Schlüssel an der Eingabeaufforderung verschlüsseln? Wie kann ich das Ergebnis anschließend entschlüsseln?

Der Hochstapler
quelle

Antworten:

28

Eine andere Option ist 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
laalto
quelle
+1 für OpenSSL, da es häufiger als
Doug Harris
Das ist perfekt - funktioniert auf Mac, Alpine, irgendetwas ... gute Arbeit!
Jeremy Iglehart
Ja, wie wäre es mit einem Beispiel, bei dem keine Datei, sondern ein Argument verwendet wird?
Alexander Mills
11

Wenn Sie gpginstalliert haben, handelt es sich um eine Verschlüsselungsmethode für den industriellen Einsatz.

gpg --encrypt -r [email protected]> tempfile

Geben Sie Daten in die Konsole ein und drücken Sie Ctrl+D, um den Text zu beenden. Dadurch erhalten Sie verschlüsselte Daten in tempfile. Zum Entschlüsseln:

gpg --decrypt <tempfile

Sie benötigen die Passphrase [email protected], um die Nachricht zu entschlüsseln.

Greg Hewgill
quelle
OK, wenn die Passphrase interaktiv eingegeben werden muss, wie geht das nicht interaktiv? Wie geht das nicht interaktiv?
Alexander Mills
gpg --encrypt -r [email protected] >tempfile gpg: error retrieving '[email protected]' via WKD: No data gpg: [email protected]: skipped: No data gpg: [stdin]: encryption failed: No data (Ich bin auf einem Mac)
Alexander Mills
5
  1. Generieren Sie ein privates / öffentliches Schlüsselpaar

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. Verschlüsseln Sie die Zeichenfolge mit dem öffentlichen Schlüssel und speichern Sie sie in einer Datei

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. Mit privatem Schlüssel entschlüsseln

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

Mann Gruft (1)

Hinweis:

Krypta implementiert eine Einrotor-Maschine, die nach dem Vorbild der deutschen Rätsel entwickelt wurde, aber einen Rotor mit 256 Elementen hat. Angriffsmethoden auf solche Maschinen sind allgemein bekannt, daher bietet die Krypta nur minimale Sicherheit.

Aber zu Demonstrationszwecken ist es in Ordnung.

Nifle
quelle
"Oracle Solaris 10 8/11 Information Library"
Sebas