python加密解密之AES

复制代码
    def encrypt(self, params: str, key: str, iv: str) -> str:
        """加密"""
        generator = AES.new(key.encode("utf8"),
                            AES.MODE_CBC, iv.encode("utf8"))
        bs = AES.block_size
        pad = lambda s: s + (self.bs - len(s) %
                             self.bs) * chr(self.bs - len(s) % self.bs)
        data = bytes(pad(params), encoding="utf8")
        crypt = generator.encrypt(data)
        crypted_str = base64.b64encode(crypt)
        return crypted_str.decode()
复制代码
    def decrypt(self, params: str, key: str, iv: str) -> dict:
        """解密"""
        decode = base64.b64decode(params)
        cryptor = AES.new(key.encode("utf8"),
                          AES.MODE_CBC, iv.encode("utf8"))
        plain_text = cryptor.decrypt(decode)
        unpad = lambda s: s[0:-ord(s[-1:])]
        return unpad(plain_text)
pip install pycryptodome

 

posted @   wujf  阅读(207)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2018-06-01 根据注解修改属性的值
2018-06-01 通过反射改变对象的属性
点击右上角即可分享
微信分享提示