作爲一項自學習練習,我試圖學習如何使用一些pycrypto庫。我需要使用AES解密CBC_MODE中的密文字符串。我給出了密文,密鑰和IV。這裏是我寫的代碼:使用pycrypto進行AES解密
from Crypto.Cipher import AES
mode = AES.MODE_CBC
key = "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1"
ciphertext = "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1";
iv = ciphertext[:32]
ciphertext = ciphertext[32:]
decryptor = AES.new(key, mode, iv)
plaintext = decryptor.decrypt(ciphertext)
print plaintext
當我運行它,我得到以下錯誤:
ValueError: IV must be 16 bytes long
我知道IV字符串是32個進制的字符,因此,16個字節。我認爲這可能是一個打字問題,但我不知道如何糾正它。誰能幫忙?
謝謝!
這將有助於解釋**如何**告訴他正在使用十六進制計算機。 – kdopen 2015-02-13 23:33:23