1、安装pydes,pycharm:文件-设置-python解释器
2、pyDes使用
# pyDes.des(key,[mode],[IV],[pad],[padmode])
# 加密密钥的字节、加密类型、偏移量(可选参数用来设置填充字符)、设置填充模式
key-> 包含加密密钥的字节。DES 8个字节,16或24个字节用于三重DES;
mode-> 加密类型的可选参数,可以是pyDes.ECB(电子密码簿)或pyDes.CBC(密码块链接)
## 如果使用CBC模式,则必须提供IV->可选的初始值字节。长度必须为8个字节;
pad-> 可选参数,设置填充字符(PAD_NORMAL)以在使用此实例完成的所有加密/解密操作; padmode-> 可选参数,设置填充模式(PAD_NORMAL或PAD_PKCS5)在对此实例执行的所有加密/解密操作期间使用;
3、引入pyDes和binascii,binascii用于二进制和ASCII的相互转换
import pyDes
import binascii # 二进制和 ASCII 码互转
4、类的封装
class desSecret:
def __init__(self):
self.KEY = 'ABCDEFGH' # 八位密钥
# 加密
def des_en(self, text):
iv = secret_key = self.KEY
k = pyDes.des(secret_key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)
data = k.encrypt(text, padmode=pyDes.PAD_PKCS5)
# data.进制返回文本字符串.解码字符串
return binascii.b2a_hex(data).decode()
# 解密
def des_de(self, text):
iv = secret_key = self.KEY
k = pyDes.des(secret_key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)
data = k.decrypt(binascii.a2b_hex(text), padmode=pyDes.PAD_PKCS5)
return data.decode()
5、使用
input_text = 'LGK'
DS = desSecret()
encode_str = DS.des_en(input_text.encode())
print('加密后:', encode_str)
decode_str = DS.des_de(encode_str)
print('解密后:', decode_str)