Декодировать шестнадцатеричную строку в Python 3 - PullRequest
0 голосов
/ 10 апреля 2020

Итак, я пытаюсь очистить веб-сайт, который, как часть его полезной нагрузки в запросах, имеет следующий токен

"9976c535-c53a-4c91-926c-8dada3f8086e"
"99426794-ea7b-4773-b0a7-715fc7ee224f"
"6492978c-54a1-44c0-b98f-9fd07f5e872f"

Сначала я подумал, что это может быть дата в виде строки в кодировке, например 2020-04-10-18-542312, но эти 3 строки сверху разделены секундами, поэтому код 2020 должен быть одинаковым. Кто-нибудь знает, можно ли из даты сгенерировать шестнадцатеричный код, который кодирует, используя целую последовательность вместо числа по номеру?

Далее я попытался декодировать строки следующим образом

bytes.fromhex('9976c535').decode('ascii')
>>UnicodeDecodeError: 'ascii' codec can't decode byte 0x99 in position 0: ordinal not in range(128)

ошибка та же, если я пытаюсь использовать другие последовательности, например 4c91, или другую кодировку, например utf-8.

Почему это происходит? Как я могу получить исходную строку из приведенных выше кодов?

РЕДАКТИРОВАТЬ: Как отмечается в комментариях, эти строки являются просто токены без реального значения за ними. Если вы выполните secrets.token_hex(4) для первой части, secrets.token_hex(2) для следующих 3 и secrets.token_hex(6) для последней части, этот токен так же хорошо справится со своей задачей, поэтому нет никакой реальной попытки пытаться их декодировать.

Я не знаю, для чего это нужно в API веб-сайтов

...