После шифрования невозможно декодировать файлы
Пишу программу, которая реализует алгоритм шифрования CS-Cipher. Работаю с 16ричным представлениям битов.
Если использовать стандартную кодировку(utf-8), то при выполнении
key = None
text = 'test value'
startText = text.encode().hex()
while len(startText) % 16 != 0:
text = text + ' '
startText = text.encode('').hex()
cs = CSCipher(startText, False, key)
encrypted = cs.encrypt()
print(cs.subkeys)
cs1 = CSCipher(encrypted, True, key)
decrypted = cs.decrypt()
print(startText)
print(bytes.fromhex(encrypted).decode(''))
print(bytes.fromhex(decrypted).decode(''))
появляется ошибка
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 0: invalid continuation byte
либо
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb7 in position 0: invalid start byte
Если установить кодировку 'utf-16', то ошибка появляется через раз
UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 2-3: illegal UTF-16 surrogate
или
UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x28 in position 22: truncated data
utf-32 не работает от слова совсем.
Есть ли возможность сделать так, чтобы у меня не вылетала программа? Или зашифрованный текст всегда придется представлять в виде строки 16ричных данных, а не текстом.