我有一个运行了Lithium框架的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
有可能实现吗?
答案 0 :(得分:0)
Crypt()函数使用不同的算法,这不是原始的Blowfish加密/解密。 由于node.js还没有Crypt()实现,我建议使用SHA1 / SHA256 /其他任何方式哈希密码+ salt。