如何使用bcrypt将纯文本密码与散列密码进行比较?

我想使用bcrypt来哈希密码,然后验证提供的密码是否正确.

散列密码很简单:

import bcrypt

password = u'foobar'
password_hashed = bcrypt.hashpw(password, bcrypt.gensalt())

# then store password_hashed in a database

如何将纯文本密码与存储的哈希进行比较?

解决方法:

使用py-bcrypt,您不需要单独存储salt:bcrypt将salt存储在哈希中.

您可以简单地将哈希用作salt,并将salt存储在哈希的开头.

>>> import bcrypt
>>> salt = bcrypt.gensalt()
>>> hashed = bcrypt.hashpw('secret', salt)
>>> hashed.find(salt)
0
>>> hashed == bcrypt.hashpw('secret', hashed)
True
>>>
上一篇:php – 从password_hash()确定salt


下一篇:php – 在BCrypt中使用2x前缀?