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

如何使用python 3解密SQLite数据库中的项,python,sqlite,encryption,Python,Sqlite,Encryption,我正在尝试验证是否已在我的站点上的密码输入框中输入了正确的密码。如果输入的密码与SQLite表中对应于用户名输入框中输入的usernick的密码匹配,则返回true def check_login(db, usernick, password): """returns True if password matches stored""" cursor = db.cursor() cursor.execute("SELECT password FROM users WHER

我正在尝试验证是否已在我的站点上的密码输入框中输入了正确的密码。如果输入的密码与SQLite表中对应于用户名输入框中输入的usernick的密码匹配,则返回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
我用指纹检查我的代码哪里出错了。正在将正确的用户名和密码输入函数,但printpasscheck正在输出: ['48181acd22b3edaebc8a447868a7df7ce629920a']


我现在意识到这是因为密码被解密了。如何解密密码?

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

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

编辑


请记住,fetchone始终返回元组,即使您只选择了一列。Do passcheck=cursor.fetchone[0]。

ah好的,谢谢。这是我应该做的。所以我加密了进入函数的密码。但是im从数据库检索的密码不匹配,因为im从数据库检索的密码如下所示:“48181acd22b3edaebc8a447868a7df7ce629920a”,。有没有办法删除括号和引号?当我使用passcheck=cursor.fetchone[0]时,我得到一个错误,它说“nonetype”对象不可下标。我的密码检查打印显示数据库中的所有密码和用户名,每个用户名有2个加密的密码值。