Мой Linux настроен на использование sha512 . Тем не менее, файл /etc/shadow содержит хешированный пароль длиной всего 99 символов. Почему 99 а не 129 (64 * 2+1)? Обратите внимание, что я изменил пароль, убедившись, что система настроена на использование sha512.

Пожалуйста, смотрите результаты:

# grep sha512 /etc/pam.d/system-auth-ac
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
# grep ENCRYPT_METHOD /etc/login.defs
ENCRYPT_METHOD SHA512
# grep root /etc/shadow
root:$6$YwkRWeVN$z4Z7OKuohyyT/4gZgnOkKSWPaMvx1eCHFGNCiyFZx1QYydrEArO.HdH2JGCfosXg0sTnZFFdJnfw5QgfUqovO1:16175:0:99999:7:::

Обратите внимание, что хэш пароля начинается с $6$ поэтому он указывает на хэш sha512 .

1 ответ1

5

Хеш хранится в формате base64, что означает, что один символ кодирует 6 бит. Поэтому необходимо 512/6 = 86 (округленных) символов.

Хеш начинается после третьего (не 2-го) $ и заканчивается перед следующим двоеточием, которое составляет ровно 86 символов. Строка YwkRWeVN между 2 и 3 $ называется солью.

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