gpt4 book ai didi

django - 在 Node.js 应用程序中使用 BCryptSHA256PasswordHasher 验证在 Django 中哈希的密码

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:57 25 4
gpt4 key购买 nike

我正在尝试将 Django 应用程序中创建的一些用户迁移到 Node.js 应用程序。在 Django 应用程序中创建的用户已使用 BCryptSHA256PasswordHasher 哈希器对其密码进行哈希处理,并将其存储在 PostgreSQL 数据库中。我可以从 Postgres 获取整个密码字符串,这些密码字符串存储在表单中:

<algorithm>$<iterations>$<salt>$<hash>.

我想要做的是弄清楚如何获取已知密码(例如Password1),并使用Postgres中字段中的盐,获取Node.js哈希字符串以匹配Django字符串。这样我就可以对那些已经迁移过来的用户进行身份验证。

我已经多次尝试将 bcrypt 和 bcryptjs npm 用于 Node.js,但到目前为止我还没有成功。

使用任何 Node.js npm 的工作示例都很棒。

最佳答案

经过相当多的尝试和错误后,我设法解决了这个问题。这是解决方案:

var crypto = require('crypto'),
bcrypt = require("bcrypt");

exports.auth = function (password) {
var preHash = crypto.createHash('sha256').update(password).digest('hex');
var hash = bcrypt.hashSync(preHash, salt);

return hash;
}

其中盐参数应该是:

$2a$12$imuoSFEBx8JJh5L9cCDJKO

我唯一不清楚的是盐字符串“$2a$”的第一部分。在我的 Django 密码字段中,这实际上是“$2b$”,根据bcrypt page on Wikipedia是有效的,但是当尝试在传递给 bcrypt (以及 bcryptjs )的盐中使用 $2b$ 时,会引发错误。我可以解决这个问题,但也许 bcrypt 只需要更新。

关于django - 在 Node.js 应用程序中使用 BCryptSHA256PasswordHasher 验证在 Django 中哈希的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com