Я работаю над этой ссылкой , пытаясь расшифровать зашифрованную строку AES.Я незнаком с AES в Python.У меня проблема в том, что в строке 3 (как показано ниже) я получаю следующую ошибку ...
Вызывается метод decrypt(file)
с указанным ниже путем к текстовому файлу, который содержит зашифрованныйdata.
Я понимаю, что struct
ожидает значение int
, но я не уверен, как это исправить.
Я работаю на виртуальной машине Debian, размещенной наMacbook, поэтому я считаю, что использование <
для littlendian является правильным на основе структурных документов Python здесь .
Как я могу это исправить?
msg = '/root/htb/boxes/chaos/mail/msg.txt'
Traceback (most recent call last):
File "en.py", line 60, in <module>
decrypt(msg)
File "en.py", line 39, in decrypt
fsz = struct.unpack('<Q', fin.read(struct))
TypeError: an integer is required
def decrypt(file):
with open(file) as fin:
fsz = struct.unpack('<Q', fin.read(struct))
iv = fin.read(16)
aes = AES.new(getKey(password), AES.MODE_CBC, iv)
with open(verfile, 'w') as fout:
while True:
data = fin.read(chunksize)
n = len(data)
if n == 0:
break
decd = aes.decrypt(data)
print(decd).hexdigest()
n = len(decd)
if fsz > n:
fout.write(decd)
else:
fout.write(decd[:fsz])