/ / python bcrypt e node.js bcrypt - javascript, python, node.js, hash, bcrypt

python bcrypt e node.js bcrypt - javascript, python, node.js, hash, bcrypt

Eu tenho um script python que importa dados do usuário em um mongodb que usa bcrypt para hash a senha do usuário.

os dados do mongodb também serão usados ​​em um aplicativo da Web node.js, o que é a maneira correta de garantir que o hash gerado pelo py-bcrypt seja o mesmo!

ao executar a versão node.js, recebo isto:

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

e em python

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

Comparando o hash em python usando o hash gerado pelo nó, retorna:

>>> 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!

existe uma maneira de criar um hash bcrypt em python para ser usado em um aplicativo node.js?

Respostas:

0 para resposta № 1

Sim, da mesma forma que no Node, passe o hash como segundo parâmetro para verificá-lo. Criar um com um sal aleatório diferente não deve corresponder.