Я что-то не понимаю в hashlib. Я не уверен, почему я могу декодировать обычный байтовый объект, но не могу декодировать хэш, возвращаемый как байтовый объект. Я продолжаю получать эту ошибку:
UnicodeDecodeError: кодек utf-8 не может декодировать байт 0xad в позиции 1: недопустимый начальный байт
Вот мой тестовый код, который выдает эту ошибку. Ошибка в строке 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
Итак, я предполагаю, что я чего-то не понимаю в хеше, но я понятия не имею, что мне не хватает.