2013-11-17 3 views
8

Я пытаюсь ввести введенный пароль с помощью команды passwd OpenSSL и сравнить его с сохраненным хешем, но хеш-функция несовместима. Хэш, созданный в первый раз, представляет собой не тот же хеш, который генерируется, когда я иду, чтобы сравнить вход. Обратите внимание на 3 разных результата при каждом выполнении хеша:OpenSSL passwd hash не соответствует

caseys-air:~ Casey$ openssl passwd -1 MySecret 
$1$AlHYrEQp$.c7UTqHiReGXfmNtXOY/T0 
caseys-air:~ Casey$ openssl passwd -1 MySecret 
$1$6BPglDOg$8KHb5e7ZryYPfYP0Zm8Ra/ 
caseys-air:~ Casey$ openssl passwd -1 MySecret 
$1$vmQtjpWw$yIi6sZt.3XAP7W3e7hBG11 

Что здесь происходит? Используется ли системное время для создания хэша? Как я могу получить согласованные хэши?

ответ

13

Каждый раз, когда вы вызываете эту команду, она генерирует новую соль и шифрует ее солью. Формат - $1$<salt>$<data> для MD5.

Чтобы создать эквивалентное значение для сравнения, вы должны указать OpenSSL использовать ту же соль.

Сначала разделите существующую строку на $. В вашей первой струне соль составляет AlHYrEQp.

Тогда:

openssl passwd -1 -salt AlHYrEQp MySecret 

я получаю:

[[email protected] ~]$ openssl passwd -1 -salt AlHYrEQp MySecret 
$1$AlHYrEQp$.c7UTqHiReGXfmNtXOY/T0 
Смежные вопросы