Шифр AssertionError в django
Итак, я хочу зашифровать текст в аудио mp3. но когда я запускаю код, появляется сообщение об ошибке Exception Type: AssertionError. И говорится, что ошибка в
assert len(key) == key_bytes
может кто-нибудь проверить, в чем ошибка функции? Я хочу зашифровать с помощью AES 128 и 256, пожалуйста, помогите мне.
from Crypto.Cipher import AES
from Crypto.Util import Counter
from Crypto import Random
import binascii
key_bytes = 16
# Takes as input a 32-byte key and an arbitrary-length plaintext and returns a
# pair (iv, ciphtertext). "iv" stands for initialization vector.
def encrypt(key, testaudio):
assert len(key) == key_bytes
print(testaudio)
print(key)
# Choose a random, 16-byte IV.
iv = Random.new().read(AES.block_size)
# Convert the IV to a Python integer.
iv_int = int(binascii.hexlify(iv), 16)
# Create a new Counter object with IV = iv_int.
ctr = Counter.new(AES.block_size * 8, initial_value=iv_int)
# Create AES-CTR cipher.
aes = AES.new(key, AES.MODE_CTR, counter=ctr)
# Encrypt and return IV and ciphertext.
ciphertext = aes.encrypt(testaudio)
print(iv)
print(ciphertext)
return (iv, ciphertext)
Вы определили значение key_bytes
как 16
, но в вашей функции encrypt
вы используете assert
для проверки того, что длина key
при вызове функции равна 7 (длина слова "testing"), либо вы изменяете значение key_bytes
, либо изменяете значение key
, которое вы передаете при вызове вашей функции.