У меня есть простой питон скриптM2Crypto не работает, как OpenSSL для AES-128 CBC
import binascii
import M2Crypto
data = 'my super secret text to encrypt'
print 'secret data: ', data
key = '\0' * 16
iv = key
key_iv_as_hex = binascii.b2a_hex(key)
print 'hex representation of key/iv: ', key_iv_as_hex
ENC = 1 # means we are encrypting
cipher_enc = M2Crypto.EVP.Cipher(alg='aes_128_cbc', key=key, iv=iv, op=ENC)
v1 = cipher_enc.update(data)
v1 = v1 + cipher_enc.final()
encrypted_data_as_base64 = binascii.b2a_base64(v1)
print 'encrypted base64 data: ', encrypted_data_as_base64
Результат:
secret data: my super secret text to encrypt
hex representation of key/iv: 00000000000000000000000000000000
encrypted base64 data: SorHWZBvmWq0cH1QRmsoGo/nYzukotB/Jheg20AKk/w=
Когда я зашифровать ту же строку с помощью OpenSSL командной строки инструмент, который я получить различные зашифрованные данные:
echo 'my super secret text to encrypt' >> in.txt
openssl enc -aes-128-cbc -e -in in.txt -out out.txt -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
cat out.txt
SorHWZBvmWq0cH1QRmsoGkPiuRPIkAGD4BHv3Hu1X7/nO9pH2TulXHRZ7gFgEDFn
Почему my super secret text to encrypt
становится SorHWZBvmWq0cH1QRmsoGo/nYzukotB/Jheg20AKk/w=
в Python s cript и становится SorHWZBvmWq0cH1QRmsoGkPiuRPIkAGD4BHv3Hu1X7/nO9pH2TulXHRZ7gFgEDFn
, когда используется инструмент командной строки openssl? Я также не могу декодировать данные, закодированные openssl в сценарии python.
Что делать неправильно?
-nosalt не помогло. – Zelid