Jakiej funkcji skrótu używa OpenSSL do generowania klucza dla AES-256? Nigdzie nie mogę tego znaleźć w ich dokumentacji.
$ 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
Który algorytm mieszania generuje niesolony skrót key=
w drugim ostatnim wierszu dla wejścia „a”?
encryption
openssl
hashing
aes
mk12
źródło
źródło
md5
zamiastsha1
, otrzymuję takie same wyniki, jak pierwotnie opublikowałem. Pytanie brzmi: w jaki sposób uzyskuje 256 bitów z MD5 (128-bitowy algorytm mieszający)?To połączenie dwóch skrótów MD5.
Wywodzi się tak:
Możesz to sprawdzić, wykonując:
Zauważ, że oba MD5 „key.128.tmp” i „key.256.tmp” połączone razem tworzą ten sam klucz co dane wyjściowe przy pierwszym poleceniu.
źródło
OpenSSL używa AES z SHA1.
Jeśli chcesz sprawdzić lepiej napisane źródło niż OpenSSL, zapoznaj się z
klasą C ++ w artykule, która łączy się z szyframi OpenSSL .
Artykuł zawiera bardzo prosty kod źródłowy, który:
źródło
Nie znam odpowiedzi, ale prawdopodobnie można ją łatwo znaleźć w kodzie źródłowym OpenSSL .
źródło
main
funkcja (gdzie funkcjonuje funkcja pytania o hasło) ma długość ~ 500 linii i jest wypełnionagoto
s.