NODE.JS - 如何使用 bcrypt 检查 Laravel 哈希密码?

Bru*_*que 1 hash bcrypt node.js laravel

我正在开发一个Node.js需要使用来自Laravel应用程序的相同数据库信息登录的应用程序。

我已经阅读BCrypt并尝试使用它来比较它生成的散列密码与Laravel存储在数据库中的密码。

所以,根据 的文档BCrypt,我需要做这样的事情:

var salt = bcrypt.genSaltSync(saltRounds);
var hash = bcrypt.hashSync(myPlaintextPassword, salt);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用完全相同的盐Laravel来散列我的密码。我需要使用APP_KEY来做到这一点吗?

Bru*_*que 13

我喜欢这里的答案。这比我想象的要容易得多。

var hash = '$2y$08$9TTThrthZhTOcoHELRjuN.3mJd2iKYIeNlV/CYJUWWRnDfRRw6fD2';
var bcrypt = require('bcrypt');
hash = hash.replace(/^\$2y(.+)$/i, '$2a$1');
bcrypt.compare("secret", hash, function(err, res) {
    console.log(res);
});
Run Code Online (Sandbox Code Playgroud)