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:somepassword
und -pass somepassword
sowohl 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 -pass
ein 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:somevar
um das Passwort aus einer Umgebungsvariablen abzurufenfile:somepathname
um das Passwort aus der ersten Zeile der Datei am Standort zu erhaltenpathname
fd:number
um das Passwort aus der Dateideskriptornummer zu erhalten.stdin
von 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 -passin
oder -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 -passin
und verwendet, -passout
um im Beispiel Passwörter für beide Dateien festzulegen:
openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321
wo 123
und 321
sind 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