Python有着丰富的类库,可以快速实现基于DES的加密和解密。下面就是简单的几行代码就可以实现DES-CBC,采用PKCS5进行填充的标准加密和解密。
import pyDes,base64
def __encrypt(data,key):
des=pyDes.des(key,pyDes.CBC,b"\0\0\0\0\0\0\0\0", pad=None, padmode=pyDes.PAD_PKCS5)
ecryptdata=des.encrypt(data)
return bytes.decode(base64.b64encode(ecryptdata)) #base64 encoding bytes
def __decrypt(ecryptdata,key):
des=pyDes.des(key,pyDes.CBC,b"\0\0\0\0\0\0\0\0", pad=None, padmode=pyDes.PAD_PKCS5)
data=des.decrypt(base64.b64decode(ecryptdata)) #base64 decoding bytes
return bytes.decode(data)
需要指出的是,Python支持的DES-CBC,key是8位的,建议采用安全性更高的DES-EDE-CBC或DES-EDE3-CBC, 使用 pycryptodome做3DES,参考代码如下:
i