Skip to content Skip to sidebar Skip to footer

Iv Must Be 16 Bytes Long Error In Aes Encryption

I am using pycrypto module for AES encryption. And using documentation I have write down the below function but it al;ways gives error IV must be 16 bytes long but I am using 16 by

Solution 1:

Use this:

from Crypto.Cipher import AES 
import binascii,os

defaes_encrypt(plaintext):
    key = "00112233445566778899aabbccddeeff"
    iv = os.urandom(16)
    aes_mode = AES.MODE_CBC
    obj = AES.new(key, aes_mode, iv)
    ciphertext = obj.encrypt(plaintext)
    return ciphertext

Works as below:

>>>aes_encrypt("TestTestTestTest")
'r_\x18\xaa\xac\x9c\xdb\x18n\xc1\xa4\x98\xa6sm\xd3'
>>>

That's the difference:

>>>iv =  binascii.hexlify(os.urandom(16))>>>iv
'9eae3db51f96e53f94dff9c699e9e849'
>>>len(iv)
32
>>>iv = os.urandom(16)>>>iv
'\x16fdw\x9c\xe54]\xc2\x12!\x95\xd7zF\t'
>>>len(iv)
16
>>>

Post a Comment for "Iv Must Be 16 Bytes Long Error In Aes Encryption"