aes128的python实现
时间: 2023-06-29 08:10:23 浏览: 88
以下是AES-128加密和解密的Python实现示例:
```python
from Crypto.Cipher import AES
import base64
# 加密函数
def encrypt_aes128(key, text):
aes = AES.new(key.encode('utf-8'), AES.MODE_ECB)
pad_text = text + (AES.block_size - len(text) % AES.block_size) * chr(AES.block_size - len(text) % AES.block_size)
cipher_text = aes.encrypt(pad_text.encode('utf-8'))
return base64.b64encode(cipher_text).decode('utf-8')
# 解密函数
def decrypt_aes128(key, cipher_text):
aes = AES.new(key.encode('utf-8'), AES.MODE_ECB)
pad_text = aes.decrypt(base64.b64decode(cipher_text)).decode('utf-8')
return pad_text[:-ord(pad_text[-1])]
# 测试
if __name__ == '__main__':
key = '0123456789abcdef' # 16位密钥
text = 'Hello, AES-128!'
encrypted_text = encrypt_aes128(key, text)
print('加密后: ', encrypted_text)
decrypted_text = decrypt_aes128(key, encrypted_text)
print('解密后: ', decrypted_text)
```
值得注意的是,以上代码使用了 PyCryptodome 库来实现 AES 加密和解密。如果您还没有安装该库,请在终端中使用以下命令进行安装:
```
pip install pycryptodomex
```
另外,以上代码中使用的是 ECB 模式,这是一种较为简单的模式,因此在进行加密时需要注意安全性问题。如果您需要更高级别的安全模式,请使用其他AES模式,如CBC、CFB或OFB。
阅读全文