2017-07-11 5 views
-1

Python 3.5を使用していて、hashlib.md5()を使用しているときに、Pythonでhashlibを使用すると、データベースからフェッチしたときに別の値が返される

私が使用していますコード:

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

このプロセスは、パスワードリターンとして 'user1pass' を使用する場合:

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 
:しかし

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

、私は、データベースからフェッチするとき

self.user詳細は次のようになります。

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

何らかの形で、スラッシュが2倍になっているため、正しく比較できません。誰でも何が起こったのか考えている?

EDIT:出力の写真

Output of self.passCheck and self.userDetails

+0

値自体ではなく、ハッシュ文字列の 'repr'をデータベースに入れているようです。 – 9000

+0

@Anthon:問題はスラッシュをリテラルにする余分な引用符で囲まれています: '' b '\ xa0 \ xdbS \ xbc \ x18 \ x81 \ xa7 \ xf79 \ xcd \ x95kt \ x009' " (何が間違っているのか分かりません) – 9000

+0

スラッシュ( '/')ではなく、編集中にバックスラッシュ( '\')をいくつか挿入しました。それは必要ではありません。私はOPが画面上にあったものをコピーアンドペーストしたと仮定します。 – Anthon

答えて

0

私は今、私はリストを開くならば、2つのハッシュ値が一致していることを発見しました。表示エラーと思われる

関連する問題