validation在NodeJS中使用php crypt()生成的哈希?
我有一个运行在其上的锂框架的PHP 5.3 Web服务器。
我有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()函数使用不同的algorithm,这不是原始的Blowfishencryption/解密。 由于node.js没有Crypt()实现,所以我build议使用SHA1 / SHA256 /其他的密码来encryption密码。