美文网首页
Java Des加密的Python版本

Java Des加密的Python版本

作者: Curious1990 | 来源:发表于2019-12-06 16:20 被阅读0次

    接到任务要测试一下调用一个接口是不是跑的通,他们用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)
    

    相关文章

      网友评论

          本文标题:Java Des加密的Python版本

          本文链接:https://www.haomeiwen.com/subject/ruodgctx.html