Приемлемые хэши по тени

Какие алгоритмы хеширования принимает / etc / shadow?

Я пытался сгенерировать хеши паролей из PHP, используя password_hash("password1234", PASSWORD_DEFAULT);, но, похоже, это не работает, когда я пытаюсь аутентифицироваться после замены пароль пользователя к хешу, предоставленному хешами, которые я генерирую с помощью PHP.

Любая причина, почему blowfish не работает? (Я думаю, что PHP использует Blowfish по умолчанию)

0
задан 25 November 2017 в 01:14

2 ответа

Я попытался генерировать хэши пароля от PHP, с помощью password_hash("password1234", PASSWORD_DEFAULT)...

Затем необходимо сохранить вывод в формате это /etc/shadow ожидает, который, как объяснено AlexP, является:

$<method>$<salt>$<hash>

password_hashвывод отличается. Это возвращается:

$<method>$<cost>$<hash>

Например, пароль a (password_hash("a", PASSWORD_DEFAULT)) выводы, для меня:

$2y$10$w4hgkTWvE37igKd9TMn8xOcCNT/L/lojOEkqaPyIW4qdyAp92GmHC

И соль является удачливой частью хеша:

password_hash("a", PASSWORD_DEFAULT, ['salt'=>'abcdefghijklmnopqrstuv'])
// $2y$10$abcdefghijklmnopqrstuuj/LkVFwQAC6H0GkC0f1Bcmj82rKvDn.

Но shadow версия:

$6$OaeCC6PI$qGI4OTUD/seGOvJE.ckkrWMoqiVQBf8EXtQFto7MsKP8TyTCxPXPF66csX3c4ljdRnjM1U8W65EpwUgMF.4qf0

Видеть соль во втором поле?

Так или иначе я не знаю то, что PHP делает здесь. Необходимо, вероятно, использовать crypt, но я не эксперт PHP, и это - вопрос для ТАК.

Кроме того, для меня, man crypt отчеты это 2y не понят под ним:

If salt is a character string starting with the characters "$id$"  fol-
lowed by a string terminated by "$":

      $id$salt$encrypted

then  instead  of  using  the DES machine, id identifies the encryption
method used and this then determines  how  the  rest  of  the  password
string is interpreted.  The following values of id are supported:

      ID  | Method
      ---------------------------------------------------------
      1   | MD5
      2a  | Blowfish (not in mainline glibc; added in some
          | Linux distributions)
      5   | SHA-256 (since glibc 2.7)
      6   | SHA-512 (since glibc 2.7)
0
ответ дан 25 November 2017 в 01:14

Пароли хешируются с использованием библиотечной функции crypt(3); см. страницу руководства для crypt(3) . Функция выбирает функцию шифрования на основе формата salt :

  • $1$ salt_chars $: использовать MD5
  • $2a$ salt_chars $: использовать Blowfish (нестандартно, скорее всего, недоступно)
  • $5$ salt_chars $: использовать SHA-256
  • $6$ salt_chars $: использовать SHA-512
  • Не в форме $ типа $ salt_chars $: используйте DES, как в старые времена.

Я понятия не имею, можете ли вы использовать PHP для эмуляции именно того, что делает crypt(3).

2
ответ дан 25 November 2017 в 01:14

Другие вопросы по тегам:

Похожие вопросы: