• python进阶(23)用Python实现AES_ECB_PKCS5加密


    前言

    AES加密的模式有很多种,下面来介绍ECB模式的加密解密

    import base64
    from Crypto.Cipher import AES
    
    
    class AESECB:
        def __init__(self, key):
            self.key = key  # 加密密钥
            self.mode = AES.MODE_ECB  # 设置为ECB模式
            self.bs = 16  # block size
            self.PADDING = lambda s: s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)
    
        def encrypt(self, text):
            generator = AES.new(self.key, self.mode)  # ECB模式无需向量iv
            crypt = generator.encrypt(self.PADDING(text).encode('utf-8'))
            crypted_str = base64.b64encode(crypt).decode('utf-8')
            return crypted_str
    
        def decrypt(self, text):
            generator = AES.new(self.key, self.mode)  # ECB模式无需向量iv
            decrpyt_bytes = base64.b64decode(text)
            meg = generator.decrypt(decrpyt_bytes).decode('utf-8')
            return meg[:-ord(meg[-1])]
    
    
    if __name__ == '__main__':
        aes = AESECB('1234567890abcdef')
        print(aes.encrypt('111111'))
        print(aes.decrypt('rfTzn9WjsDFbK262m0k4xg=='))
    

    结果:

    rfTzn9WjsDFbK262m0k4xg==
    111111
    
  • 相关阅读:
    2019年9月笔记
    2019年8月笔记
    2019年7月笔记
    2019年5月笔记
    2019年6月笔记
    2019年4月笔记
    JAVA MAC 配置
    ionic3 打包发布,以安卓说明
    Workman websocket 握手连接
    关于mysql数据库的表概况 ,查看表状态
  • 原文地址:https://www.cnblogs.com/jiakecong/p/15683471.html
Copyright © 2020-2023  润新知