帮我写一段代码,可以将一段数字加密再对其还原
时间: 2024-03-18 19:39:33 浏览: 11
以下是一个使用AES对称加密算法实现数字加密和解密的Python代码示例:
```python
from Crypto.Cipher import AES
import base64
def encrypt(num, key):
# 加密函数,num为要加密的数字,key为密钥
cipher = AES.new(key, AES.MODE_ECB)
num_str = str(num).zfill(16).encode('utf-8')
encrypted = cipher.encrypt(num_str)
return base64.b64encode(encrypted).decode('utf-8')
def decrypt(encrypted, key):
# 解密函数,encrypted为加密后的字符串,key为密钥
cipher = AES.new(key, AES.MODE_ECB)
encrypted = base64.b64decode(encrypted)
num_str = cipher.decrypt(encrypted).decode('utf-8')
return int(num_str)
# 示例
num = 123456789
key = b'this is a secret key'
encrypted = encrypt(num, key)
print('加密后:', encrypted)
decrypted = decrypt(encrypted, key)
print('解密后:', decrypted)
```
以上代码中,encrypt()函数用于将数字加密,decrypt()函数用于将加密后的字符串解密。在加密过程中,先将数字转化为16位的字符串,然后使用AES算法进行加密,并将加密结果进行Base64编码,最终返回加密后的字符串。在解密过程中,先将加密后的字符串进行Base64解码,然后使用AES算法进行解密,最终将解密结果转化为整数并返回。