一段Des加密解密代码

#coding:utf-8
import binascii
import base64
import pyDes

class 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 d
if __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')

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值