【问题标题】:python bcrypt and node.js bcryptpython bcrypt 和 node.js bcrypt
【发布时间】:2014-09-29 01:58:17
【问题描述】:

我有一个 python 脚本,可以将用户数据导入 mongodb,该脚本使用 bcrypt 对用户密码进行哈希处理。

来自 mongodb 的数据也将在 node.js Web 应用程序中使用,确保 py-bcrypt 生成的哈希相同的正确方法是什么!

在运行 node.js 版本时,我得到了这个:

> bcrypt.genSalt(10, function(err, salt) {
... bcrypt.hash("a", salt, function(err, hash) {
..... console.log(hash);
..... });
... });
undefined
> $2a$10$tOT8MN1.3gsb6jWVL2hMRe0PHnJnXCxJX9xBewNl.2iRDnZCV/NeC

在python中

>>> import bcrypt
>>> password =b"a"
>>> hashed = bcrypt.hashpw(password, bcrypt.gensalt(10))
>>> hashed
'$2a$10$RzKqQppa3Y7ZZV8f7Ay5COFB5GMEGu7aLH7Fe2HchCyYF1gWVMZ/m'

使用node生成的hash比较python中的hash,返回:

>>> node_hash = b"$2a$10$tOT8MN1.3gsb6jWVL2hMRe0PHnJnXCxJX9xBewNl.2iRDnZCV/NeC"
>>> if bcrypt.hashpw(password, node_hash) == node_hash:
...     print("It Matches!")
... else:
...     print("Does not match")
... 
It Matches!

有没有办法在 python 中创建 bcrypt 哈希以用于 node.js 应用程序?

【问题讨论】:

    标签: javascript python node.js hash bcrypt


    【解决方案1】:

    是的,与在 Node 中的方式相同,将哈希作为第二个参数传入以检查它。使用不同的随机盐创建一个不应该匹配。

    【讨论】:

    • 我对 python 和 node 使用相同的盐,所以console.log(hash);hashed 一样吗?
    猜你喜欢
    • 2014-02-15
    • 2021-12-12
    • 2019-05-24
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多