3

В /etc /shadow у меня есть такие записи, как admin:YtChlvAGYzva2:16318:0:99999:7::: . Я знаю оригинальный пароль и хотел бы как-то сгенерировать тот же самый хэш. Однако запуск openssl passwd -crypt password дает мне разные результаты при каждом запуске. Я предполагаю, что соль вовлечена, так где я могу найти соль, использованную для создания оригинального хэша?

Редактировать: я получил оригинальный хеш, используя следующую команду:

openssl passwd -crypt -salt Yu password

1 ответ1

7

Соль и зашифрованный пароль смешиваются в строку YtChlvAGYzva2.

Из теневого пароля Howto:

Когда пользователь выбирает или получает пароль, он кодируется случайно сгенерированным значением, называемым солью. Это означает, что любой конкретный пароль может храниться 4096 различными способами. Значение соли затем сохраняется с закодированным паролем.

Когда пользователь входит в систему и вводит пароль, соль сначала извлекается из сохраненного закодированного пароля.

Более длинные строки паролей, которые вы видите в современных системах, разделяют хеш с помощью $. Но для более старых систем это было просто сделано (Википедия):

Более ранние версии Unix использовали файл паролей (/etc/passwd) для хранения хешей соленых паролей (пароли с префиксом двухсимвольных случайных солей). В этих более ранних версиях Unix соль также сохранялась в файле passwd (в виде открытого текста) вместе с хешем солевого пароля.

В вашем примере я считаю, что соль - это "Yt", а зашифрованный пароль - "ChlvAGYzva2". Это буквально первые два символа строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .