Wie kann ich AES-256 CBC mit OpenSSL ver- / entschlüsseln?

1744
roblind

Ich habe gerade Linux (Ubuntu) zum ersten Mal installiert und auch das Paket OpenSSL heruntergeladen. Geöffnete Befehlszeile auch und versuchte einige Befehle, aber keiner von ihnen funktionierte.

Was ich also habe, ist ein Anfangsvektor:, habe 5a04ec902686fb05a6b7a338b6e07760auch Geheimtext: 14c4e6965fc2ed2cd358754494aceffaund den entsprechenden Klartext:We're blown. Run

Nun stelle ich mir vor, dass es einen Befehl geben muss, bei dem Sie den Anfangsvektor und den Klartext eingeben und als Ergebnis den Geheimtext erhalten ...? Antother-Möglichkeit: Geben Sie den Anfangsvektor und den Geheimtext ein, rufen Sie den Klartext ab.

Aber wie kann ich das in der Kommandozeile tun? Ich habe bereits den Befehl ausprobiert:

openssl aes-256-cbc -e -nosalt -a -in input.txt -out output.txt -k key -iv ivkey 

about input.txt: Ich habe diese Datei auf meinem Desktop erstellt und den Klartext darin geschrieben. Über output.txtich es erstellt, wie gut und legte es auf dem Desktop, ist es leer. Nach diesem Befehl passiert nichts!

Gibt es einen anderen Befehl, der mir helfen könnte? Ich habe auch versucht, ein nützliches Werkzeug im Internet zu finden, aber nichts schien zu funktionieren! : /

1
Das "-k" sollte "-K" sein, wenn Sie den rohen Hex-Schlüssel angeben möchten. forest vor 2 Jahren 1
@forest Danke! Trotzdem passiert nichts ^^ vor 2 Jahren 0
Sie möchten auch nicht "-a", wenn Sie eine Hex-Ausgabe wünschen. Pipe stattdessen nach 'xxd'. Da sowohl der Klartext als auch der Chiffretext genau 16 Bytes sind, möchten Sie auch "-nopad". AndrolGenhald vor 2 Jahren 1
@AndrolGenhald Großartig scheint es, als wäre ich einen Schritt weiter gekommen. Jetzt werde ich aufgefordert, "aes-256-cbc-Verschlüsselungskennwort" einzugeben. Ich habe gerade "1" 32 mal eingegeben, aber wieder ist nichts danach passiert. vor 2 Jahren 0
Dann scheint es nicht zu erkennen, dass Sie die rohen Schlüssel angeben. Denken Sie daran, mit dem Inbusschlüssel "-K" und mit dem Inbus IV "-iv" zu verwenden. Dadurch kann das direkt übernommen werden, anstatt Sie zur Eingabe eines Kennworts aufzufordern. Wenn Sie nach einem Kennwort gefragt werden, wird nach ASCII gesucht, die mit SHA-256 (bei neueren Builds) oder MD5 (bei älteren Builds) gehasht wird, bevor es direkt als Schlüssel verwendet wird. forest vor 2 Jahren 1
@forest als hex key -K Ich habe gerade den Chiffretext verwendet. Vielleicht war das der Fehler? Was kann ich sonst noch verwenden, wenn das Problem dadurch verursacht wurde? vor 2 Jahren 0
Sie müssen den zum Verschlüsseln verwendeten Schlüssel verwenden. Wenn Sie den Schlüssel nicht kennen, können Sie ihn nicht entschlüsseln. So funktioniert Kryptographie. AndrolGenhald vor 2 Jahren 1
@roblind Der Geheimtext befindet sich in der Datei für "-in" (wenn Sie eine Entschlüsselung durchführen). `-K` steht für den Schlüssel, nicht für den Geheimtext. forest vor 2 Jahren 1
@forest Ok der letzte Befehl, den ich verwendet habe: openssl aes-256-cbc -d xxd -nosalt -nopad -in theciphertext -out output.txt -iv der initialvektor, aber ich werde immer noch nach dem Passwort gefragt vor 2 Jahren 0
Sie vermissen immer noch die "-K". Und wofür ist der xxd da? Sie möchten xxd verwenden, um die Datei nach der Entschlüsselung anzuzeigen. forest vor 2 Jahren 2

1 Antwort auf die Frage

2
SergA

Eingabetext vorbereiten:

echo "We're blown. Run" >input.txt 

Kodieren:

openssl aes-256-cbc -nosalt -e \ -in input.txt -out output.txt \ -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760' 

Zum ursprünglichen Text decodieren:

openssl aes-256-cbc -nosalt -d \ -in output.txt \ -K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760'