@wintreist

Как ЭТО декодировать?

Здравствуйте. Пишу сюда с последней надеждой. Установил библиотеку 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)
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
mindtester
@mindtester
http://iczin.su/hexagram_48
фундаментальный принцип:
-
Установил библиотеку pycryptodome
если что то не работает:
- читаем документацию
- дальше ищем каналы обратной связи (и они есть - https://github.com/Legrandin/pycryptodome/issues)
- получить помощь на сторонних ресурсах (как тут) это вопрос везения. возможно очень большого. это зависит от популярности библиотеки
Ответ написан
Комментировать
@wintreist Автор вопроса
Я не много понял почему так. AES тут не при чем. Get_random_bytes(16) возвращает кривые байты (b'v\x19\xae\xd6\xfe\x92\x1cj\x8b\x17\x9d\xb6\x01#\xf7!') Из-за чего при шифровке и дешифровке всё криво, только все равно не понятно, как сделать тогда, чтобы байты генерировались нормально
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы