Код: Выделить всё
$pbkdf2-sha512$600000$aI2RMiaE8N6bE0JIaS3FmA$T3whDDJKetOQoCgatvKtno1oEQJjCfcwa9U08fzczcnWk5taHuQRU4g/0Gi7VhmnH2RNzHm22gUndBSpxDr0ow
Однако, когда я пытаюсь децифировать это, я не могу получить тот же хэш, возвращенный, и я не уверен, почему.
Согласно спецификации для Passlib (и Phpasslib) - это формат:
Код: Выделить всё
$algorithm$rounds$salt$hash
Итак, для моего вышеуказанного пароля хэш:
algorithm = pbkdf2-sha512
rounds = 600000
salt = aI2RMiaE8N6bE0JIaS3FmA
resultant hash = T3whDDJKetOQoCgatvKtno1oEQJjCfcwa9U08fzczcnWk5taHuQRU4g/0Gi7VhmnH2RNzHm22gUndBSpxDr0ow
< /code>
Однако, когда я пытаюсь использовать эти параметры конфигурации ниже в скрипте PHP, я получаю совершенно другой хэш для этого пароля: < /p>
$salt = "aI2RMiaE8N6bE0JIaS3FmA";
$iterations = 600000;
$password = "home1234";
$configarray = array('digest' => 'sha512', 'rounds' => $iterations, 'salt' => $salt);
$genedconfig = \PHPassLib\Hash\PBKDF2::genConfig($configarray);
$passlib_hash = \PHPassLib\Hash\PBKDF2::hash($password, $genedconfig);
echo("
Passlib Hash: ".$passlib_hash);
< /code>
Какие вывод: < /p>
Passlib Hash: $pbkdf2-sha512$600000$aI2RMiaE8N6bE0JIaS3FmA$3cg9HdAb6qDBw0XVklqlYVBqZ7t6P0zVGAPwXkmRiAJA.IuGxOWRXzz.QjOBKJcN3lpk91XsNSEnTjeaFn7cVw
< /code>
Как видите, хэш совершенно другой. :/
Я ожидал, что хэш будет таким же, как хеш из базы данных, с учетом точных параметров и использования PhpassLib, которая является библиотекой PHP, вдохновленной библиотекой Python Passlib.
Подробнее здесь: https://stackoverflow.com/questions/796 ... they-match