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

Примечание: неуниверсальный вариант, будет работать только с конкретно Вашим типом строк

→ Ссылка