Я пытаюсь преобразовать хэш в последовательность байтов. Функция показана ниже. [code]def decrypt(hash, size): bytes = bin(int(hash, 16)).replace("0b", "").zfill(32) bytes = flip(reverse(int(bytes, 2), 32), 33) div = "100000100110000010001110110110111" bytes = bytes.zfill(size*8) div = div.zfill(size*8) res = "" print(bytes + " - DIV") print(div + " - POLY") while div[0] != "1": res = "" for b in range(len(bytes)): if div[b] == bytes[b]: res = res + "0" else: res = res + "1" bytes = bin(int(res, 2) >python encrypt.py a 40 0xe8b7be43 [97]
>>>python decrypt.py e8b7be43 1 0000000000111101100000100001001011101000 - DIV 0000000100000100110000010001110110110111 - POLY 0000001001110010100001100001111010111110 - DIV 0000001000001001100000100011101101101110 - POLY 0000000011110110000010000100101110100000 - DIV 0000010000010011000001000111011011011100 - POLY 0000100111001010000110000111101011111000 - DIV 0000100000100110000010001110110110111000 - POLY 0000001111011000001000010010111010000000 - DIV 0001000001001100000100011101101101110000 - POLY 0010011100101000011000011110101111100000 - DIV 0010000010011000001000111011011011100000 - POLY 0000111101100000100001001011101000000000 - DIV 0100000100110000010001110110110111000000 - POLY 1001110010100001100001111010111110000000 - DIV 1000001001100000100011101101101110000000 - POLY 1001110010100001100001111010111110000000 0xa0058808 [198] [/code] Проблема здесь в том, что хэш массива байтов, который генерирует функция «расшифровки», не соответствует входному хешу e8b7be43. Как это исправить?
Я пытался получить CRC32 переменной типа строковых данных, но получаю следующую ошибку:
>>> message='hello world!'
>>> import binascii
>>> binascii.crc32(message)
Traceback (most recent call last):
File , line 1, in
TypeError: a bytes-like object...
Я создаю текстовую рыболовную игру, и я хотел бы включить в скрипт функцию для сохранения/загрузки данных игрока. Для контекста, вот данные, которые я хотел бы, чтобы пользователь мог сохранять/загружать:
experience_points = 0
fishing_count = 0...