java des 偏移_Java Des加密的Python版本

接到任务要测试一下调用一个接口是不是跑的通,他们用Java写的 DesUtil.java 实现DES加密,我不想用 jpype 去调,启一个 JVM 太浪费资源,于是自己用python重写了。也挺简单的,mode 和 padmode 啥的你们自己根据需求换。

iv 偏移向量只支持8位,如果超过8位,可以截断只保留前8位。JAVA版的也是非8位会报错,如果不报错的,其实也是内部做了处理,只保留了前8位。

import base64

from pyDes import des, CBC, PAD_PKCS5

class DesUtil(object):

def __init__(self, mode=CBC, padmode=PAD_PKCS5, key=None, iv=None):

self.padmode = padmode

self.k = des(key, mode, iv, pad=None, padmode=padmode)

def encrypt(self, content):

if not isinstance(content, str):

content = str(content)

en = self.k.encrypt(content.encode("utf-8"), padmode=self.padmode)

return base64.b64encode(en)

def descrypy(self, content):

de = self.k.decrypt(base64.b64decode(content), padmode=self.padmode)

return de.decode("utf-8")

if __name__ == "__main__":

key = "97ed97ed"

des_util = DesUtil(key=key, iv=key)

content = "你好,World!"

str_en = des_util.encrypt(content)

str_de = des_util.descrypy(str_en)

print("加密结果", str_en)

print("解密结果", str_de)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值