我想将密码的哈希值(b'¥_ÆMÐ1;2±*öªÝ='
)与用户键入的哈希值(str)(hashlib.md5(pw.encode('utf-8')).hexdigest())
进行比较。当我打印它们时,它们会出现不同。 b'¥_ÆMÐ1;2±*öªÝ='
,另一个b'\xa5\x83_\xc6\x85M\xd01;2\xb1*\xf6\xaa\xdd='
。出于这个原因,我无法比较这两个字符串。我正在寻找一种可以在逻辑上将b'\xa5\x83_\xc6\x85M\xd01;2\xb1*\xf6\xaa\xdd='
转换为b'¥_ÆMÐ1;2±*öªÝ='
的函数(每个转义码都转换为Unicode对应的转义码)。提前致谢。 BTW哈希是" lenny"的哈希。如果这有帮助。 Here是我的代码的链接。这是我的输出:
Welcome to The Vault Type your username: lenny (input not relevant) b'¥_ÆMÐ1;2±*öªÝ=' b"b'\\xa5\\x83_\\xc6\\x85M\\xd01;2\\xb1*\\xf6\\xaa\\xdd='"
答案 0 :(得分:1)
如果您想要哈希上下文中的原始字节,请使用.digest()
而不是.hexdigest()
。
编辑,你的pastebin第14行应该是:
if hashlib.md5(lol.encode('utf-8')).digest() == b'\xa5\x83_\xc6\x85M\xd01;2\xb1*\xf6\xaa\xdd=':