为了账号安全,请及时绑定邮箱和手机立即绑定

在 Bcrypt (Python) 中使用 SQLite 返回作为密码字段

在 Bcrypt (Python) 中使用 SQLite 返回作为密码字段

阿波罗的战车 2024-01-12 10:36:09
我想检查输入的密码是否与数据库中存储的密码相同,但是当我使用它时,bcrypt.checkpw()它会返回一个错误,指出它需要一个字符串或字节,因为 SQL 查询返回一个元组。我找不到将数据库响应转换为元组中的字节以使其兼容的方法。sql = ''' SELECT password FROM user_data WHERE username=? '''username = input('Input username: ')password = bytes(input('Input Password: '), encoding='utf-8')cur = conn.cursor()cur.execute(sql, (username,))rows = cur.fetchall()for row in rows:    if bcrypt.checkpw(password, row):        details = (user_id, username, password)        print('logged in')        return details        break
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超5个赞

只需在函数中添加 row[0] 即可解决问题,因为它返回元组内的第一个(也是唯一一个)值。

换句话说,将其视为列表

当其他值未使用时从元组中提取 a 值


查看完整回答
反对 回复 2024-01-12
  • 1 回答
  • 0 关注
  • 37 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信