Учитывая хэш пароля, как,Как проверить шифр (3) пароль sha512?
$6$rounds=500000$RzOKKJIKZ18arhBR$E2JyKkCOZZXva89rAzvQOZxL1rZ.1wt9uC4yEVr0YkZkTbpi1bd7QBexgpbbc5qI4NvntJQAlrYSPg2bSvVr5/
И обычный текстовый пароль, как я могу проверить пароль соответствует хэш в Node.js?
Я пробовал три разных библиотеки до сих пор, и ни один из них не поддерживает $6$
. Официальная криптовальная библиотека, похоже, поддерживает sha512, но метод createHash не использует соль.
Я использую узел 6.2. Пароли были созданы с использованием функции PHP crypt, которая, по моему мнению, является только оберткой вокруг C library function.
Из [PHP doc] (http://php.net/manual/en/function.crypt.php): * CRYPT_SHA512 - SHA-512 хэш с шестнадцатизначной солью с префиксом ** $ 6 $ **. Если строка солей начинается с «rounds = $», числовое значение N используется, чтобы указать, сколько раз цикл хеширования должен выполняться, подобно параметру стоимости на Blowfish. Число раундов по умолчанию - 5000, минимум 1000 и максимум 999999999. Любой выбор из N вне этого диапазона будет усечен до ближайшего предела. * –
zaph
@zaph Right ... Я все это прочитал. И я попытался разделить хэш-строку и запустить ее с помощью различных криптографических функций, но я не смог воспроизвести точно такой же хеш, эрго, я не могу проверить свои пароли. Я не уверен, какой метод укрепления ключей использует PHP ... это pbkdf2 или просто повторное хеширование или что-то еще? – mpen
Это проблема использования алгоритмов, которые полностью определены. Лучше всего получить код и понять его. – zaph