Я пытаюсь создать луковый маршрутизатор в python, где каждое сообщение будет зашифровано три раза перед отправкой на 3 узла для расшифровки.
В тесте, который я настроил ниже, я шифрую свое сообщениетри раза, но после расшифровки я просто получаю мусор.Я думаю, что это может быть связано с порядком, в котором я применяю заполнение или кодирование / декодирование байтов.
simpleMessage = "Hello!!!!!"
CMD1 = "MSG"
CMD2 = "FWD"
CMD3 = "FWD"
messagePackage = (CMD1, simpleMessage)
messagePackage = str(messagePackage).encode('utf-8')
messagePackage = self.padder(messagePackage)
onionLayer1 = encryption.symmetricEncryption(key1[0], key1[1], messagePackage)
messagePackage2 = (CMD2, onionLayer1)
messagePackage2 = str(messagePackage2).encode('utf-8')
messagePackage2 = self.padder(messagePackage2)
onionLayer2 = encryption.symmetricEncryption(key2[0], key2[1], messagePackage2)
messagePackage3 = (CMD3, onionLayer2)
messagePackage3 = str(messagePackage3).encode('utf-8')
messagePackage3 = self.padder(messagePackage3)
onionLayer3 = encryption.symmetricEncryption(key3[0], key3[1], messagePackage3)
onionLayerPeeled3 = encryption.symmetricDecrypt(key3[0], key3[1], onionLayer3)
onionLayerPeeled2 = encryption.symmetricDecrypt(key2[0], key2[1], onionLayerPeeled3)
onionLayerPeeled1 = encryption.symmetricDecrypt(key1[0], key1[1], onionLayerPeeled2)
Я считаю,проблема заключается в том, что я кодирую каждый луковый слой в байтовый массив, и мне нужно будет декодировать обратно в строку utf-8, чтобы читать информацию после каждого дешифрования.1013 *
onionLayerPeeled3 = onionLayerPeeled3.decode ('utf-8')
В результате возникает следующая ошибка
UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0x99 в позиции0: неверный начальный байт
Любая помощь / совет высоко ценится