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 @ 2022-06-01 12:12  wujf  阅读(196)  评论(0编辑  收藏  举报