openssl не расшифрованные файлы, зашифрованные pycrypto
Я шифрую файл в python:
from Crypto.Cipher import AES
from Crypto import Random
key = Random.new().read(16)
iv = Random.new().read(AES.block_size)
encryptor = AES.new(key, AES.MODE_CBC, iv)
with open(in_file, 'rb') as fin, open(out_file, 'wb') as fout:
fout.write(iv)
while True:
chunk = fin.read(16*1024)
if len(chunk) == 0:
break
elif len(chunk) % 16 != 0:
chunk += b' ' * (16 - len(chunk) % 16)
fout.write(encryptor.encrypt(chunk)
print base64.b32encode(key)
но когда после чего я пытаюсь расшифровать его с помощью openssl:openssl aes-256-cbc -d -in enc -out new.zip
он возвращает волшебный номер сумки, что я делаю не так?
1 ответ
Решение
Программа использует 128-битный ключ AES для шифрования, как видно из строки:
key = Random.new().read(16)
Итак, вместо использования
openssl aes-256-cbc -d -in enc -out new.zip
использовать этот
openssl aes-128-cbc -d -in enc -out new.zip