So verwenden Sie das Kennwortargument über die Befehlszeile für OpenSSL zur Entschlüsselung

So verwenden Sie das Kennwortargument über die Befehlszeile für OpenSSL zur Entschlüsselung

Daher ist es nicht die sicherste Vorgehensweise, ein Passwort über ein Befehlszeilenargument zu übergeben. Allerdings hat mich die Dokumentation für OpenSSL verwirrt, wie man ein Passwortargument an den OpenSSL-Befehl übergibt.

Das ist, was ich versuche zu tun

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

Anschließend wird der Passcode zur Entschlüsselung abgefragt. Ich habe die OpenSSL-Dokumente und das Internet durchsucht, um die Antwort zu finden, wenn ich einfach das Passwort an den Befehl weitergeben wollte, ohne zu versuchen, das Passwort in die Datei zurückzugeben. Ich habe versucht, -pass:somepasswordund -pass somepasswordsowohl mit als auch ohne Anführungszeichen hinzuzufügen, aber ohne Erfolg.

Ich habe endlich die Antwort herausgefunden und gesehen, dass Leute in einigen anderen Foren ähnliche Fragen hatten. Deshalb dachte ich, ich poste meine Frage und Antwort hier für die Community.

Hinweis: Ich verwende OpenSSL Version 0.9.8y

Antwort1

Die Dokumentation war für mich nicht ganz klar, enthielt aber die Antwort. Das Problem bestand darin, dass ich kein Beispiel sehen konnte.

So geht's:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

Beachten Sie, dass auf die Befehlszeilensyntax immer -passein Leerzeichen und dann der Typ der von Ihnen angegebenen Passphrase folgt, d. h. pass:für die einfache Passphrase und dann nach dem Doppelpunkt die eigentliche Passphrase ohne Leerzeichen.

Darüber hinaus gibt die Dokumentation an, dass Sie andere Passphrase-Quellen bereitstellen können, indem Sie Folgendes tun:

  • env:somevarum das Passwort aus einer Umgebungsvariablen abzurufen
  • file:somepathnameum das Passwort aus der ersten Zeile der Datei am Standort zu erhaltenpathname
  • fd:numberum das Passwort aus der Dateideskriptornummer zu erhalten.
  • stdinvon der Standardeingabe lesen

Nachdem ich diese Frage und Antwort geschrieben habe, scheint alles offensichtlich. Aber es hat sicherlich einige Zeit gedauert, es herauszufinden, und ich habe gesehen, dass andere ähnlich lange dafür gebraucht haben. Hoffentlich kann ich diese Zeit verkürzen und anderen schneller antworten! :)

Bei OpenSSL 1.0.1e ist der zu verwendende Parameter -passinoder -passout. Dieses Beispiel wäre also:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword

Antwort2

Ich habe -passinund verwendet, -passoutum im Beispiel Passwörter für beide Dateien festzulegen:

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

wo 123und 321sind Passwort

Antwort3

Zurzeit wird Ubuntu 14.04 LTS mit openssl 1.0.1f-1ubuntu2.16 ausgeliefert.

In dieser Version ist der zu verwendende Parameter-k

Beispiel:

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

verwandte Informationen