根据本书提供的代码运行程序,登录系统报错
发表在Python图书答疑
2021-09-08
《Python Web开发从入门到实践》第8章 开发基于Flask框架的好记星博客系统
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
精彩评论 7
2021-09-11
地板
sql = "SELECT * FROM users WHERE username = '%s'" % (username) # 根据用户名查找user表中记录
db = MysqlUtil() # 实例化数据库操作类
result = db.fetchone(sql) # 获取一条记录
password = result['password'] # 用户填写的密码
session['username'] = username
flash('登录成功!', 'success') # 闪存信息
return redirect(url_for('dashboard')) # 跳转到控制台
db = MysqlUtil() # 实例化数据库操作类
result = db.fetchone(sql) # 获取一条记录
password = result['password'] # 用户填写的密码
# 对比用户填写的密码和数据库中记录密码是否一致
# 此处报错
if sha256_crypt.verify(password_candidate, password): # 调用verify方法验证,如果为真,验证通过# 写入session
session['logged_in'] = Truesession['username'] = username
flash('登录成功!', 'success') # 闪存信息
return redirect(url_for('dashboard')) # 跳转到控制台
官方提供的解决方法:
One of the rarer use-cases is the need to identify whether a string recognizably belongs to a given hasher class. This can be important in some cases, because attempting to call PasswordHash.verify()
with another algorithm’s hash will result in a ValueError:
>>> from passlib.hash import pbkdf2_sha256, md5_crypt>>> other_hash = md5_crypt.hash("password")>>> pbkdf2_sha256.verify("password", other_hash)Traceback (most recent call last): <traceback omitted>ValueError: not a valid pbkdf2_sha256 hash
This can be prevented by using the identify method, which determines whether a hash belongs to a given algorithm:
>>> hash = pbkdf2_sha256.hash("password")>>> pbkdf2_sha256.identify(hash)True>>> pbkdf2_sha256.identify(other_hash)False
原文网址:https://passlib.readthedocs.io/en/stable/narr/hash-tutorial.html
2021-09-15
5L
附件的图片都看不见,方便再上传下吗
首页上一页 1 下一页尾页 7 条记录 1/1页