python实现AES加密
时间: 2023-07-12 13:09:40 浏览: 97
python实现AES加密与解密
5星 · 资源好评率100%
在Python中,可以使用pycryptodome库来实现AES加密。
首先需要安装pycryptodome库,可以通过以下命令来安装:
```
pip install pycryptodome
```
然后,可以使用以下代码来实现AES加密:
```python
from Crypto.Cipher import AES
import base64
# key为密钥,长度必须为16、24或32字节(128、192或256位),iv为初始化向量,长度为16字节
key = b'1234567890123456'
iv = b'1234567890123456'
# 加密函数,text为需要加密的字符串
def encrypt(text):
# 将字符串转换为bytes类型
text = bytes(text, encoding='utf-8')
# 使用AES-CBC模式进行加密
cipher = AES.new(key, AES.MODE_CBC, iv)
# 加密后的bytes类型字符串
encrypted_text = cipher.encrypt(text)
# 将加密后的bytes类型字符串进行base64编码,方便传输和存储
encrypted_text = base64.b64encode(encrypted_text)
# 返回加密后的字符串
return encrypted_text.decode('utf-8')
# 测试
text = 'hello, world!'
encrypted_text = encrypt(text)
print(encrypted_text)
```
运行上述代码,将输出加密后的字符串。
如果需要解密,可以使用以下代码:
```python
# 解密函数,encrypted_text为加密后的字符串
def decrypt(encrypted_text):
# 将字符串解码为bytes类型
encrypted_text = bytes(encrypted_text, encoding='utf-8')
# 将base64编码的字符串解码为bytes类型
encrypted_text = base64.b64decode(encrypted_text)
# 使用AES-CBC模式进行解密
cipher = AES.new(key, AES.MODE_CBC, iv)
# 解密后的bytes类型字符串
decrypted_text = cipher.decrypt(encrypted_text)
# 将解密后的bytes类型字符串转换为字符串类型
decrypted_text = decrypted_text.decode('utf-8')
# 返回解密后的字符串
return decrypted_text
# 测试
text = decrypt(encrypted_text)
print(text)
```
运行上述代码,将输出解密后的字符串。
阅读全文