Welche Hash-Funktion verwendet OpenSSL, um einen Schlüssel für AES-256 zu generieren? Ich kann es nirgendwo in ihrer Dokumentation finden.
$ touch file
$ openssl aes-256-cbc -nosalt -P -in file
enter aes-256-cbc encryption password: (I type "a" and hit enter)
Verifying - enter aes-256-cbc encryption password: (I type "a" and hit enter)
key=0CC175B9C0F1B6A831C399E269772661CEC520EA51EA0A47E87295FA3245A605
iv =4FA92C5873672E20FB163A0BCB2BB4A4
Welcher Hash-Algorithmus generiert den ungesalzenen Hash key=
in der vorletzten Zeile für die Eingabe "a"?
encryption
openssl
hashing
aes
mk12
quelle
quelle
md5
stattdessensha1
die gleichen Ergebnisse wie ursprünglich. Die Frage ist, wie es 256 Bit von MD5 (einem 128-Bit-Hashing-Algorithmus) erhält.Es ist eine Verkettung von zwei MD5-Hashes.
Es ist so abgeleitet:
Sie können dies überprüfen, indem Sie Folgendes tun:
Beachten Sie, dass beide MD5 von 'key.128.tmp' und 'key.256.tmp' zusammen den gleichen Schlüssel bilden wie die Ausgabe beim ersten Befehl.
quelle
OpenSSL verwendet AES mit SHA1.
Wenn Sie eine besser geschriebene Quelle als OpenSSL untersuchen möchten, lesen Sie den Artikel
C ++ - Klasse, der mit OpenSSL-Chiffren verbunden ist .
Der Artikel enthält sehr einfachen Quellcode, der:
quelle
Ich kenne die Antwort nicht, aber Sie könnten sie wahrscheinlich leicht genug im OpenSSL-Quellcode finden .
quelle
main
Funktion (in der sich die Funktion zum Abfragen von Passwörtern befindet) ist ca. 500 Zeilen lang und mitgoto
s übersät .