Intereting Posts

Проверить хэш, сгенерированный с помощью php crypt () в NodeJS?

У меня есть веб-сервер 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 / что-то еще.