繁体   English   中英

python bcrypt和node.js bcrypt

[英]python bcrypt and node.js bcrypt

我有一个将用户数据导入mongodb的python脚本,该脚本使用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生成的哈希值比较python中的哈希值,返回:

>>> 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中创建要在node.js应用程序中使用的bcrypt哈希?

是的,与Node中的方法相同,将哈希值作为第二个参数传递来进行检查。 用不同的随机盐创建一个不应匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM