Режим PyCrypto AES-CTR получает различный вывод - PullRequest
0 голосов
/ 15 ноября 2018

Я использую PyCrypto для шифрования своих данных, но почему их вывод отличается?

from Crypto.Cipher import AES
from Crypto.Util import Counter


data = b'\x02\x01\xf2\xca\x04\x03\x02P\x02\x02\x01\x80\xd0\x0f\x80\xd0\x0f'
key = b'random 16 string'
nonce = b'string 16 rand\x00\x01'
cipher = AES.new(key, AES.MODE_CTR, counter=lambda: nonce)
data_encrypted = cipher.encrypt(data)
print(data_encrypted)
# output is: b'_M\xed(\t4\xc4\x94\x80\x83K\x94qL\x15+R'

counter = Counter.new(2 * 8, prefix=b'string 16 rand', initial_value=1)
cipher = AES.new(key, AES.MODE_CTR, counter=counter)
data_encrypted = cipher.encrypt(data)
print(data_encrypted)
# output is: b'_M\xed(\t4\xc4\x94\x80\x83K\x94qL\x15+\xce'

Оба метода вызовут утечку памяти. Как использовать Pycryptodome для достижения первого эффекта

...