После шифрования невозможно декодировать файлы

Пишу программу, которая реализует алгоритм шифрования 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ричных данных, а не текстом.


Ответы (0 шт):