перевести строковое сообщение в набор чисел python - PullRequest
1 голос
/ 04 апреля 2020

Я реализовал алгоритм RSA на python. Но у меня есть проблема с тем, что вам нужно представить любое сообщение в числовой форме (набор цифр), чтобы поднять до степени. Сложность состоит в том, что если вы делаете это с помощью ascii, как узнать, сколько цифр в коде ascii символа 1, 2 или 3, для однозначного декодирования. Есть ли другие варианты?

def decodeMessage(self, encodedMessage):
        decodedBlocks = []
        for block in encodedMessage:
            decoded = self.mod_exp(block, self.e, self.N)
            decodedBlocks.append(decoded)
        return decodedBlocks

1 Ответ

0 голосов
/ 05 апреля 2020

Нашел решение в binascii, которое дает мне преобразование строки в набор чисел.

message = message.strip()
b = message.encode('utf-8')
hex_data  = binascii.hexlify(b)
cipher = int(hex_data, 16)

после всех манипуляций, которые я конвертирую обратно:

h2 = hex(result)[2:]
b2 = h2.encode('ascii')
b3 = binascii.unhexlify(b2)
answer = b3.decode('utf-8')
...