在Python中使用hashlib时,从数据库中获取时返回不同的值

时间:2017-07-11 14:34:20

标签: python sqlite hashlib

我使用的是Python 3.5,当我使用hashlib.md5()时,从数据库返回的值与在外部哈希处的字符串时相同。

我正在使用的代码:

self.m = hashlib.md5()
self.m.update(self.password.encode('utf-8'))
self.passCheck = self.m.digest()

当使用'user1pass'作为密码时,此过程返回:

b' \xa0\xdbS\xbc\x18\x81\xa7\xf79\xcd\x95kt\x009'

但是,当我从数据库中提取时:

self.cur.execute("SELECT Username, Password FROM Users WHERE Username = ?;", username)
    self.userFindings = self.cur.fetchall()
    self.userDetails = []
    for each in self.userFindings:
        self.userDetails.append(list(each))

    return self.userDetails
在这种情况下,

self.userDetails看起来像这样:

[['user1', "b' \\xa0\\xdbS\\xbc\\x18\\x81\\xa7\\xf79\\xcd\\x95kt\\x009'"]]

在这个过程中,斜线加倍,意味着它们无法正确比较。任何人都知道是什么导致了这个?

编辑:输出照片

Output of self.passCheck and self.userDetails

1 个答案:

答案 0 :(得分:0)

我现在发现,如果我打开列表,那么两个哈希值匹配。它似乎是显示错误