AES расшифровал вывод в строку

#python #python-3.x #encryption #cryptography #aes

Вопрос:

Я играю в вызов CTF . Мне был предоставлен зашифрованный файл и код, используемый для шифрования, где я должен найти время, используемое для начальной переменной для расшифровки . Но я не могу расшифровать вывод из байтов в строку . Вот код, используемый в вызове CTF —

 #! /usr/local/bin/python from Crypto.Cipher import AES from datetime import datetime import hashlib from time import strftime  seed = str(datetime.now()) key = hashlib.sha256(seed.encode('utf-8')).digest()  IV = 16 * 'x00'  mode = AES.MODE_CBC encryptor = AES.new(key, mode, IV=IV)  text = open('flag.txt', 'r', encoding='utf-8').read() text = text   "0" * (16-len(text)) ciphertext = encryptor.encrypt(text) target = open('flag.enc.txt', 'wb')  target.write(ciphertext) target.close()  

А вот код, который я использовал для расшифровки —

 #! /usr/local/bin/python from Crypto.Cipher import AES from datetime import datetime import hashlib import base64 from time import strftime  seedOrg = '2021-07-06 03:16:51.' IV = 16 * 'x00' mode = AES.MODE_CBC with open('/home/teja_mxx/Desktop/CapStone/encDec/flag.enc.txt', 'rb') as f:  encText = f.read() print(encText)  for x in range(1):  if len(str(x)) lt; 9:  llen = len(str(x))  milli = ("0" * (9 - llen)) str(x)  seed = seedOrg milli  key = hashlib.sha256(seed.encode('utf-8')).digest()  decryptor = AES.new(key, mode, IV=IV)  decryptedText = decryptor.decrypt(encText)  print(decryptedText.decode())  

И я получаю эту ошибку . Как мне это решить ? Ошибка UnicodeDecodeError: кодек ‘utf-8’ не может декодировать байт 0xe1 в позиции 4: недопустимый байт продолжения

Комментарии:

1. Бессмысленные байты, возвращаемые при расшифровке с неправильным ключом, обычно не имеют допустимой кодировки UTF-8.

2. Вы пытались зашифровать с помощью известного исходного кода, а затем расшифровать с помощью своего кода, используя это конкретное начальное значение, чтобы проверить, работает ли ваша расшифровка в основном так, как ожидалось?

3. Да, @MichaelButscher . Я действительно пытался расшифровать шифрование с помощью известного семени . Он по-прежнему показывает ту же ошибку

4. Верно, значит, двоичное сравнение семян удалось?