Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript python bcrypt和node.js bcrypt_Javascript_Python_Node.js_Hash_Bcrypt - Fatal编程技术网

Javascript python bcrypt和node.js bcrypt

Javascript python bcrypt和node.js bcrypt,javascript,python,node.js,hash,bcrypt,Javascript,Python,Node.js,Hash,Bcrypt,我有一个python脚本,它将用户数据导入mongodb,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(ha

我有一个python脚本,它将用户数据导入mongodb,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'
使用节点生成的哈希值比较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中创建bcrypt哈希,以便在node.js应用程序中使用?

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

我对python和node使用相同的salt,因此
console.log(散列)也会使用相同的salt是否与哈希的
相同?