У меня есть веб-сервер PHP 5.3 с литий-фреймворком, работающим на нем.
У меня есть хеши паролей, созданные с помощью CRYPT_BLOWFISH
:
public static function hash($password, $salt = null) { return crypt($password, $salt ?: static::salt()); }
Они проверяются следующим образом:
public static function check($password, $hash) { return String::compare(crypt($password, $hash), $hash); }
Я ищу сценарий NodeJS
, который позволит мне проверять и генерировать похожие хэши:
Я пробовал это до сих пор (проверьте сейчас):
var c = crypto.createCipher('bf-cfb', password); var res = c.update(hash); res += c.final('utf8');
Где (не точные вары, но выглядит так):
var hash = '$2a$10$nA5CV2XWJGn0cbKxSHU3GOp29ypHNVJDglJ0iNFx2zFkfy3mrsRZK'; // from php var salt = '$2a$10$nku2zgjB65zLdcVC1BIhG.'; // from php too var password = 'passwordInClearTextToCheck'; // correct password to check
Можно ли достичь?
Функция Crypt () использует другой алгоритм, это не сырое шифрование / дешифрование Blowfish. Поскольку для node.js еще нет реализации Crypt (), я бы рекомендовал хэш-пароль + соль с SHA1 / SHA256 / что-то еще.