【发布时间】:2017-05-27 17:54:41
【问题描述】:
我正在为现有的烧瓶应用程序实现一个 api,登录是使用 Flask-User 创建的,但是现在我需要手动查找用户并匹配密码以进行身份验证。
问题是我不知道如何重新创建密码哈希以与存储在数据库中的密码 Flask-User 进行比较。
主要是因为https://github.com/lingthio/Flask-User/blob/master/flask_user/passwords.py 的 Flask-User 源提到了盐,但是从我拥有的数据库列中:
sqlite> pragma table_info(user);
0|id|INTEGER|1||1
1|username|VARCHAR(50)|1||0
2|password|VARCHAR(255)|1|''|0
3|reset_password_token|VARCHAR(100)|1|''|0
4|email|VARCHAR(255)|1||0
5|confirmed_at|DATETIME|0||0
6|is_active|BOOLEAN|1|'0'|0
7|first_name|VARCHAR(100)|1|''|0
8|last_name|VARCHAR(100)|1|''|0
没有盐。所以问题是我如何从明文密码生成一个哈希值,我可以将其与 Flask-User 创建的哈希值进行比较。 这是一个无关紧要的样本哈希;
$2a$12$84F1dCPN1bVYEzPswDvgZu5ma1Xk5lNepvX/X9kKFYj8Q6Dy6j95q
【问题讨论】:
-
为什么要手动做,而不是使用flask-user api来做呢?
标签: python hash flask bcrypt flask-login