Python hashlib хеш сущности
Нужно из инпута получить строку вида "\xF0\x9F\x98\x80" (это смайлик в utf-8) и получить хеш, но не строки, а самой сущности, как это можно сделать?
Например, ? имеет хеш 34722ef0267ceda14f0e2b756b83e85d6e79e458967895e72b07f87da7c0e275. Если захешировать "\xF0\x9F\x98\x80", то получим не тот результат, т. к. это хеш строки, а не сущности.
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
s = r'\xf0\x9f\x98\x80'
hex_s = s.replace(r'\x', '') # f09f9880
smile = bytearray.fromhex(hex_s).decode() # ?
UPD на комментарий:
def stdin_hash():
raw = input('Ввод: ')
hex_s = raw.replace(r'\x', '')
text = bytearray.fromhex(hex_s)
hash_object = hashlib.sha256(text)
hex_dig = hash_object.hexdigest()
return hex_dig
Примечание: неуниверсальный вариант, будет работать только с конкретно Вашим типом строк