一段Des加密解密代码

来源:互联网 发布:python 3pdf 编辑:程序博客网 时间:2024/05/21 11:31
#coding:utf-8import binasciiimport base64import pyDesclass DES:    #IV必须是 8 字节长度的十六进制数    iv = '3132333435363738'    #key加密密钥长度,24字节    key = '313233343536373839303132333435363738393031323334'    def __init__(self, iv, key):        self.iv = iv        self.key = key    def encrypt(self, data):        iv = binascii.unhexlify(self.iv)        key = binascii.unhexlify(self.key)        k = pyDes.triple_des(key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)        d = k.encrypt(data)        d = base64.encodestring(d)        return d    def decrypt(self, data):        iv = binascii.unhexlify(self.iv)        key = binascii.unhexlify(self.key)        k = pyDes.triple_des(key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)        try:            data = base64.decodestring(data)            d = k.decrypt(data)        except:            d = ''        return dif __name__ == '__main__':    data = "1123"    des = DES('3132333435363738','313233343536373839303132333435363738393031323334')        print 'STR: %s' % (data,)    encryptdata = des.encrypt(data.encode('utf-8'))    print "ENCODE: %s" % encryptdata    decryptdata = des.decrypt(encryptdata)    print "STR: %s" % decryptdata.decode('utf-8')