Какую хеш-функцию использует OpenSSL для генерации ключа для AES-256? Я не могу найти это нигде в их документации.
$ 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
Какой алгоритм хеширования генерирует несоленый хеш после key=
второй последней строки для ввода «a»?
encryption
openssl
hashing
aes
Mk12
источник
источник
md5
вместо этогоsha1
я получаю те же результаты, что я публиковал изначально. Вопрос в том, как получить 256 бит из MD5 (128-битный алгоритм хеширования)?Это объединение двух хэшей MD5.
Это выводится так:
Вы можете проверить это, выполнив:
Обратите внимание, как оба MD5 из 'key.128.tmp' и 'key.256.tmp', соединенные вместе, образуют тот же ключ, что и вывод исходной команды.
источник
OpenSSL использует AES с SHA1.
Если вы хотите изучить лучше написанный источник, чем OpenSSL, взгляните на статью
C ++ class, которая взаимодействует с шифрами OpenSSL .
Статья содержит очень простой исходный код, который:
источник
Я не знаю ответа, но вы, вероятно, могли бы найти его достаточно легко в исходном коде OpenSSL .
источник
main
функция (там, где работает функция запроса пароля) имеет длину ~ 500 строк и изобилует символомgoto
s.