PythonでのAES復号化でエラー”Input strings must be a multiple of 16 in length”
AESで暗号化された文字列を復号化すると下記エラーが発生します。
ValueError: Input strings must be a multiple of 16 in length
今回暗号化されている文字列は70文字なのですが、16の倍数を要求されており、上記解消する方法がわかりません。
環境
python3.5.1
ーーーーエラーが発生しているコード(共通鍵についてはダミーを使用)ーーーーー
import os
import hashlib
import base64
from Crypto.Cipher import AES
secret_key = hashlib.sha256('ABCDEFGH'.encode('utf-8')).digest()
encrypt_data =bytes(b'BfkH%2FBcWEdwESdJVf%2FKI5nC0exQMuzow2SO%2BRnRBIXKAntEEAGzTAbghzalj5nUg')
missing_padding = len(encrypt_data) % 4
if missing_padding != 0:
encrypt_data += b'='* (4 - missing_padding)
base64_decode = base64.b64decode(encrypt_data)
iv = encrypt_data[:16]
enc = encrypt_data[16:]
aes = AES.new(secret_key, AES.MODE_CBC,iv)
decrypt_data = aes.decrypt(enc)