python DES加密总结

本文详细介绍了在Python中使用DES和DES3(TripleDES)进行数据加密和解密的方法。通过实例代码展示了如何设置密钥,实现数据的加密与解密过程,并强调了密钥长度的要求。
部署运行你感兴趣的模型镜像

今天接到一个对接第三方的需求,要解密对方接口返回的数据,加密方式使用的是DES加密

python DES加密分为两种,一种是DES;另外一种是DES3,也叫做TripleDES

下面分别做一下说明

第一种DES3,也就是TripleDES,直接撸代码

from Crypto.Cipher import DES3
KEY = 'welcome_to_china_weixina'


def encrypt_data(data):
    pad = 8 - len(data) % 8
    padStr = ""
    for i in range(pad):
        padStr = padStr + chr(pad)
    data = data + padStr
    des3 = DES3.new(KEY, DES3.MODE_ECB)
    des3_data = des3.encrypt(data)
    base64_des3_data = base64.standard_b64encode(des3_data)
    return base64_des3_data

print encrypt_data("13333333333")

def decrypt_data(data):
    pad = 8 - len(data) % 8
    padStr = ""
    for i in range(pad):
        padStr = padStr + chr(pad)
    data = data + padStr
    base64_data = base64.standard_b64decode(data)
    des = DES3.new(KEY, DES3.MODE_ECB)
    decrypt_data = des.decrypt(base64_data)
    return decrypt_data[0:ord(decrypt_data[len(decrypt_data)-1])*-1]

print decrypt_data("SRSTugMGkllhCfw47E1aWg==")

这种加密方式 KEY的值必须是16位或者24位,否则不支持

下面是加密解密后的结果

 

 

第二种 DES,代码可以延用上面这套加密解密方式

from Crypto.Cipher import DES
KEY = 'welcomet'


def encrypt_data(data):
    pad = 8 - len(data) % 8
    padStr = ""
    for i in range(pad):
        padStr = padStr + chr(pad)
    data = data + padStr
    des3 = DES.new(KEY, DES.MODE_ECB)
    des3_data = des3.encrypt(data)
    base64_des3_data = base64.standard_b64encode(des3_data)
    return base64_des3_data

print encrypt_data("13333333333")

def decrypt_data(data):
    pad = 8 - len(data) % 8
    padStr = ""
    for i in range(pad):
        padStr = padStr + chr(pad)
    data = data + padStr
    base64_data = base64.standard_b64decode(data)
    des = DES.new(KEY, DES.MODE_ECB)
    decrypt_data = des.decrypt(base64_data)
    return decrypt_data[0:ord(decrypt_data[len(decrypt_data)-1])*-1]

print decrypt_data("IL6rNiXEDgCfPzdg7KzuJg==")

这种加密方式 KEY的值必须是8位,否则不支持

下面是加密解密后的结果

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值