Что означает $ 4 $ в выводе sha1pass? - PullRequest
3 голосов
/ 23 сентября 2010

При создании пароля с помощью sha1pass первое значение из токена равно '4'.

Например:

sha1pass test

дает нам:

$4$GTdnmykS$25iwV+ruXRwor4pUmKF57uXHj70$

Токен использует $ в качестве разделителей: 25iwV+ruXRwor4pUmKF57uXHj70 - вычисленный хеш, GTdnmykS - сгенерированная соль, поскольку я не предоставил второй параметр, но что это означает 4?

4 на самом деле жестко запрограммирован, это последняя строка sha1pass, которая представляет собой скрипт Perl:

print '$4$', $salt, '$', $pass, "\$\n";

Почему первое значение этого токена '4', и что делаетэто значит?

Ответы [ 3 ]

8 голосов
/ 23 сентября 2010

Это просто подпись, поэтому вы знаете, что вы смотрите на пароль SHA-1; $1$ используется для MD5, $5$ для SHA-2-256 и $6$ для SHA-2-512.

6 голосов
/ 23 сентября 2010

Я видел соглашение, где $ 1 $ обозначает MD5, а $ 4 $ обозначает SHA1. Он жестко закодирован, потому что он просто кодирует, как был создан хеш для будущего сравнения.

3 голосов
/ 23 сентября 2010

Это подпись, сообщающая вам, что используется тип хеша, что очевидно .

Теперь, , почему присутствует? Это потому, что он используется для хэшей паролей Unix, проверьте crypt (Unix) :

Если соль начинается со строки $ digit $ , то используется формат Modular Crypt. Цифра обозначает, какой алгоритм используется при шифровании.

...