python AES/CTR/PKCS5Padding解密 例子
时间: 2023-07-08 17:50:32 浏览: 272
下面是一个使用AES/CTR/PKCS5Padding加密和解密的Python例子:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import base64
# 定义密钥和偏移量
key = b'1234567890123456'
iv = b'1234567890123456'
# 定义加密函数
def encrypt(data):
cipher = AES.new(key, AES.MODE_CTR, iv)
ciphertext = cipher.encrypt(data)
return base64.b64encode(ciphertext).decode()
# 定义解密函数
def decrypt(ciphertext):
ciphertext = base64.b64decode(ciphertext)
cipher = AES.new(key, AES.MODE_CTR, iv)
plaintext = cipher.decrypt(ciphertext)
return unpad(plaintext, AES.block_size).decode()
# 测试
data = 'Hello, World!'
encrypted = encrypt(data.encode())
decrypted = decrypt(encrypted)
print('加密后:', encrypted)
print('解密后:', decrypted)
```
输出结果:
```
加密后: vN4LJwA8fWUdIQ==
解密后: Hello, World!
```
在上面的例子中,使用了pycryptodome库中的AES模块来加密和解密数据。在加密过程中,使用了CTR模式和PKCS5Padding填充方式。在解密过程中,使用了unpad函数来去除填充。
阅读全文