2

私は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 バッグマジック番号が返されます。何が間違っていますか?

4

1 に答える 1

0

次の行からわかるように、プログラムは暗号化に 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
于 2013-03-20T06:54:27.473 に答える