可以使用填充的方法来使输入数据长度满足密文块大小的要求。以下是一个Python代码示例:
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
# 设置AES密码和CTR模式的计数器值
key = b'Sixteen byte key'
nonce = b'unique nonce'
# 初始化AES对象和CTR模式
cipher = AES.new(key, AES.MODE_CTR, nonce=nonce)
# 加密数据
plaintext = b'hello world' # 注意:长度不是密文块大小的倍数
ciphertext = cipher.encrypt(pad(plaintext, AES.block_size)) # 使用填充方法使输入数据长度满足密文块大小的要求
# 解密数据
decipher = AES.new(key, AES.MODE_CTR, nonce=nonce)
decrypted = unpad(decipher.decrypt(ciphertext), AES.block_size)
print(decrypted) # 输出:b'hello world'