使用 PassLib 验证 Flask 用户密码的哈希值
Using PassLib to Verify Hash from Flask User Passwords
我目前正在尝试将我的 Flask 用户迁移到 Django 后端。
但是,当我使用 passlib 验证哈希时,我无法弄清楚为什么它不会验证。
我们的 Flask 应用程序设置
SECURITY_PASSWORD_HASH = "pbkdf2_sha512"
SECURITY_PASSWORD_SALT = "Whosebug" # this is an example
我从数据库中提取的哈希示例
flask_hash =
"$pbkdf2sha512000$ZQyhNEbIOSfk/J/T2vs/Bw$j.yxtixV.DqAcpsY9XTnJZZb3lCkR2fMWmV329Uc7Y/vz5Z0yMshEkYlUsE2Y9xm8TICwYkG55RgAplzZzLl7g"
所以我创建了一个自定义的 pbkdf2_sha512 与圆和盐
从 passlib.hash 导入 pbkdf2_sha512
rounds = 12000
salt = "Whosebug".encode() # assume I swapped this out with the right salt
custom_pbkdf2 = pbkdf2_sha512.using(rounds=rounds, salt=salt)
verify_result = custom_pbkdf2.verify(hash=flask_hash, secret=password)
print (verify_result) # false
但是如果我创建一个新的散列...它确实有效
test_hash = custom_pbkdf2.hash('testing-if-this-works')
test_hash_confirm = custom_pbkdf2.verify('testing-if-this-works', hash=test_hash)
有什么我想念的吗?非常感谢您在这里提供的任何帮助……我知道这个的密码——这是我用于测试的虚拟帐户。
我也遇到了同样的情况,幸好找到了这个reddit thread,里面有解释。
基本上,您需要验证用户的是:
from flask_security.utils import verify_password
verify_password(<plain text password>, <password hash>)
更多详情here
我目前正在尝试将我的 Flask 用户迁移到 Django 后端。
但是,当我使用 passlib 验证哈希时,我无法弄清楚为什么它不会验证。
我们的 Flask 应用程序设置
SECURITY_PASSWORD_HASH = "pbkdf2_sha512"
SECURITY_PASSWORD_SALT = "Whosebug" # this is an example
我从数据库中提取的哈希示例
flask_hash = "$pbkdf2sha512000$ZQyhNEbIOSfk/J/T2vs/Bw$j.yxtixV.DqAcpsY9XTnJZZb3lCkR2fMWmV329Uc7Y/vz5Z0yMshEkYlUsE2Y9xm8TICwYkG55RgAplzZzLl7g"
所以我创建了一个自定义的 pbkdf2_sha512 与圆和盐 从 passlib.hash 导入 pbkdf2_sha512
rounds = 12000
salt = "Whosebug".encode() # assume I swapped this out with the right salt
custom_pbkdf2 = pbkdf2_sha512.using(rounds=rounds, salt=salt)
verify_result = custom_pbkdf2.verify(hash=flask_hash, secret=password)
print (verify_result) # false
但是如果我创建一个新的散列...它确实有效
test_hash = custom_pbkdf2.hash('testing-if-this-works')
test_hash_confirm = custom_pbkdf2.verify('testing-if-this-works', hash=test_hash)
有什么我想念的吗?非常感谢您在这里提供的任何帮助……我知道这个的密码——这是我用于测试的虚拟帐户。
我也遇到了同样的情况,幸好找到了这个reddit thread,里面有解释。
基本上,您需要验证用户的是:
from flask_security.utils import verify_password
verify_password(<plain text password>, <password hash>)
更多详情here