/ / python bcrypt и node.js bcrypt - javascript, python, node.js, хеш, bcrypt

python bcrypt и node.js bcrypt - javascript, python, node.js, хеш, bcrypt

Имам скрипт python, който импортира потребителски данни в mongodb, който използва bcrypt, за да хешира паролата на потребителя.

данните от mongodb ще бъдат използвани и в уеб приложението node.js, какъв е правилният начин да се гарантира, че хешът, генериран от 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

и в питон

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

има ли начин да се създаде bcrypt хеш в python, който да се използва в node.js приложение?

Отговори:

0 за отговор № 1

Да, по същия начин като в Node, предайте хеша като втори параметър, за да го проверите. Създаване на такъв с различна произволна сол не трябва да съвпада.