如何使用 python 3 解密 SQLite 数据库中的项目

How to decrypt item in SQLite database using python 3

我正在尝试验证是否在我网站的密码输入框中输入了正确的密码。如果输入的密码与在用户名输入框中输入的 "usernick" 相对应的 SQLite table 中的密码匹配,则目标是 return 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']

我现在明白了,这是因为密码被解密了。如何解密密码?

你不知道。您对用户输入的密码进行加密,并检查它是否与数据库中的加密版本匹配。

但是,如果没有关于某个数据库最初是如何创建的任何详细信息,就无法进一步帮助您。

编辑

请记住,fetchone() 总是 returns 一个元组,即使您只选择了一个列。做 passcheck = cursor.fetchone()[0].