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

python bcrypt і node.js bcrypt - javascript, python, node.js, hash, 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, передайте хеш-код у якості 2-го параметра, щоб перевірити його. Створення однієї з іншою випадковою сіллю не повинно відповідати.