@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)
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 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!') Из-за чего при шифровке и дешифровке всё криво, только все равно не понятно, как сделать тогда, чтобы байты генерировались нормально
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы