python加密解密字符串代码
时间: 2023-12-31 19:04:56 浏览: 94
里提供了三种Python中常用的加密解密字符串的方法:DES、RSA和AES。
1. DES加密解密:
使用Crypto.Cipher库中的DES模块,需要注意的是,密钥必须为8位或16位bytes类型,加密文本必须为8的倍数。具体代码实现可以参考引用中的DesUtil类。
2. RSA加密解密:
使用rsa库进行加密解密,需要生成公钥和私钥,具体代码实现可以参考引用中的rsacrypt类。
3. AES加密解密:
使用pycryptodome库中的AES模块,需要注意的是,密钥必须为16、24或32位bytes类型,加密文本可以为任意长度。具体代码实现可以参考以下示例:
```
from Crypto.Cipher import AES
import base64
class AesUtil():
""" AES加密解密 """
key = b'1234567890123456' # 密钥 16、24或32位bytes类型
iv = b'1234567890123456' # 初始向量 16位bytes类型
def __init__(self):
self.aes = AES.new(self.key, AES.MODE_CBC, self.iv) # 创建一个AES实例
def pad(self, text):
""" 加密函数,如果text不是16的倍数,那就补足为16的倍数 :param text: :return: """
while len(text) % 16 != 0:
text += b' '
return text
def encrypt(self, text):
padded_text = self.pad(text)
encrypted_text = self.aes.encrypt(padded_text)
# 把加密后的字符串转化为base64编码的字符串
return base64.b64encode(encrypted_text).decode()
def decrypt(self, text):
# 先把base64编码的字符串转化为bytes类型
encrypted_text = base64.b64decode(text.encode())
decrypted_text = self.aes.decrypt(encrypted_text).rstrip(b' ')
return decrypted_text.decode()
aes = AesUtil()
enc = aes.encrypt(b"我是一个兵!")
print("加密后:%s" % enc)
dec = aes.decrypt(enc)
print("解密后:%s" % dec)
```
阅读全文