2

我有一个 PHP 5.3 网络服务器,上面运行着 Lithium 框架。

我有生成的密码哈希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

有没有可能实现?

4

1 回答 1

0

Crypt() 函数使用不同的算法,这不是原始的 Blowfish 加密/解密。由于 node.js 还没有 Crypt() 实现,我建议使用 SHA1/SHA256/其他方法对密码 + 盐进行哈希处理。

于 2012-12-08T11:50:55.357 回答