2016-05-20 3 views
-1

Учитывая хэш пароля, как,Как проверить шифр (3) пароль sha512?

$6$rounds=500000$RzOKKJIKZ18arhBR$E2JyKkCOZZXva89rAzvQOZxL1rZ.1wt9uC4yEVr0YkZkTbpi1bd7QBexgpbbc5qI4NvntJQAlrYSPg2bSvVr5/ 

И обычный текстовый пароль, как я могу проверить пароль соответствует хэш в Node.js?

Я пробовал три разных библиотеки до сих пор, и ни один из них не поддерживает $6$. Официальная криптовальная библиотека, похоже, поддерживает sha512, но метод createHash не использует соль.

Я использую узел 6.2. Пароли были созданы с использованием функции PHP crypt, которая, по моему мнению, является только оберткой вокруг C library function.

+0

Из [PHP doc] (http://php.net/manual/en/function.crypt.php): * CRYPT_SHA512 - SHA-512 хэш с шестнадцатизначной солью с префиксом ** $ 6 $ **. Если строка солей начинается с «rounds = $», числовое значение N используется, чтобы указать, сколько раз цикл хеширования должен выполняться, подобно параметру стоимости на Blowfish. Число раундов по умолчанию - 5000, минимум 1000 и максимум 999999999. Любой выбор из N вне этого диапазона будет усечен до ближайшего предела. * – zaph

+0

@zaph Right ... Я все это прочитал. И я попытался разделить хэш-строку и запустить ее с помощью различных криптографических функций, но я не смог воспроизвести точно такой же хеш, эрго, я не могу проверить свои пароли. Я не уверен, какой метод укрепления ключей использует PHP ... это pbkdf2 или просто повторное хеширование или что-то еще? – mpen

+0

Это проблема использования алгоритмов, которые полностью определены. Лучше всего получить код и понять его. – zaph

ответ

Смежные вопросы