我不了解有关 hashlib 的内容。我不确定为什么我可以解码常规字节对象,但无法解码作为字节对象返回的哈希。我不断收到此错误:
UnicodeDecodeError:“utf-8”编解码器无法解码位置 1 的字节 0xad:无效的起始字节
这是我产生此错误的测试代码。错误在第 8 行 ( h2 = h.decode('utf-8')
)
import hashlib
pw = 'wh@teV)r'
salt = 'b7u2qw^T&^#U@Lta)hvx7ivRoxr^tDyua'
pwd = pw + salt
h = hashlib.sha512(pwd.encode('utf-8')).digest()
print(h)
h2 = h.decode('utf-8')
print(h2)
如果我不散列它,它工作得很好......
>>> pw = 'wh@teV)r'
>>> salt = 'b7u2qw^T&^#U@Lta)hvx7ivRoxr^tDyua'
>>> pwd = pw + salt
>>> h = pwd.encode('utf-8')
>>> print(h)
b'wh@teV)rb7u2qw^T&^#U@Lta)hvx7ivRoxr^tDyua'
>>> h2 = h.decode('utf-8')
>>> print(h2)
wh@teV)rb7u2qw^T&^#U@Lta)hvx7ivRoxr^tDyua
所以我猜我对哈希不了解,但我不知道我错过了什么。