Здравствуйте. Пишу сюда с последней надеждой. Установил библиотеку pycryptodome, так как пытаюсь сделать клиент-сервер приложение, для обеспечения безопасности информации буду использовать AES из библиотеки. Все бы ничего, но чтобы зашифровать текст являющийся String'ом нужно перед текстом поставить
b'hello, world'
Тогда AES принимает его и шифрует, в данный момент после шифра у меня получается b'\x06\xad\x13*V\x01\xa55\xb6v}K'
После дешифровки b'\xfc\x0f%\xc9\x9f\x0f\x99\x17^\x16\x96\xd6'
Но когда я пытаюсь его декодировать обратно в текст .decode('utf-8')
Появляется такая ошибка
decrypt = decrypt.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 0: invalid start byte
Иногда такое
decrypt = decrypt.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xeb in position 0: invalid continuation byte
(После шифровки b'\xb3\xfa#\x06\xb6\xa6\xc5\x95F|CJ' ; После дешифровки b'\xeb`\xdb\x9bK|\xb25!\x18\xb4Z')
Может кто знает в чем дело? Гугл, Яндекс не дали понятных результатов, а в документации об этом ничего…
Хотел, и забыл вставить весь код
text = b'Hello, World'
AESkey = get_random_bytes(16)
def encrypt(message, key):
chiper = AES.new(key,AES.MODE_EAX)
crypt, tag = chiper.encrypt_and_digest(text)
return crypt, tag
def decrypt(message, key,tag):
chiper = AES.new(key,AES.MODE_EAX)
print(message)
decrypt = chiper.decrypt(message)
print(decrypt)
decrypt = decrypt.decode('utf-8')
print(decrypt)
cryptmess, tag = encrypt(text, AESkey)
decrypt(cryptmess, AESkey,tag)