python bcrypt和node.js bcrypt
我有一个python脚本,将用户数据导入到使用bcrypt来散列用户密码的mongodb中。
来自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'
使用由节点生成的散列比较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中创build一个bcrypt散列用于node.js应用程序?
是的,和在Node中一样,把hash作为第二个参数来检查它。 用不同的随机盐创build一个不应该匹配。