我正在尝试验证是否在我的网站上的密码输入框中输入了正确的密码。如果输入的密码与在用户名输入框中输入的“usernick”对应的SQLite表中的密码,则返回true。在
def check_login(db, usernick, password):
"""returns True if password matches stored"""
cursor = db.cursor()
cursor.execute("SELECT password FROM users WHERE nick='%s'" % usernick)
passcheck = cursor.fetchone()
print(usernick)
print(password)
print(passcheck)
if password == passcheck:
return True
else:
return False
我用指纹来看看我的代码哪里出错了。正确的用户名和密码被输入到函数中,但是print(passcheck)正在输出: ['48181acd22b3edaebc8a447868a7df7ce629920a']
我现在意识到这是因为密码被解密了。如何解密密码?在
你不需要。你加密用户输入的密码,并检查它是否与数据库中的加密版本相匹配。在
但是,如果不了解数据库certive最初是如何创建的,就无法进一步帮助您。在
编辑
请记住,
fetchone()
始终返回一个元组,即使您只选择了一个列。做passcheck = cursor.fetchone()[0]
。在相关问题 更多 >
编程相关推荐