- 安装Crypto:pip3 install pycryptodome
- 封装一个可用的模块
-
#!/usr/bin/python # -*- coding: UTF-8 -*- from Crypto.Cipher import AES import hashlib class Aescrypt(): def __init__(self, key, model=AES.MODE_CBC, iv='1234567812345678'): self.key = self.Add16(key) self.model = model self.iv = iv.encode() def Add16(self, par): if type(par) == str: par = par.encode() while len(par) % 16 != 0: par += b'\x00' return par def AesEncrypt(self, text): text = self.Add16(text) if self.model == AES.MODE_CBC: self.aes = AES.new(self.key, self.model, self.iv) elif self.model == AES.MODE_ECB: self.aes = AES.new(self.key, self.model) self.encrypt_text = self.aes.encrypt(text) return self.encrypt_text def AesDecrypt(self, text): if self.model == AES.MODE_CBC: self.aes = AES.new(self.key, self.model, self.iv) elif self.model == AES.MODE_ECB: self.aes = AES.new(self.key, self.model) self.decrypt_text = self.aes.decrypt(text) self.decrypt_text = self.decrypt_text.strip(b"\x00") return self.decrypt_text def HashMsg(self, msg): sha256 = hashlib.sha256() sha256.update(msg.encode('utf-8')) res = sha256.hexdigest() return res if __name__ == '__main__': passwd = "123456781234567" iv = '1234567812345678' aescryptor = Aescrypt(passwd, AES.MODE_CBC, iv) # CBC模式 # aescryptor = Aescrypt(passwd, AES.MODE_ECB, "") # ECB模式 text = "好好学习" en_text = aescryptor.AesEncrypt(text) print("密文:", en_text) text = aescryptor.AesDecrypt(en_text) text = str(text, encoding='utf-8') print("明文:", text)
python对文件加密解密模块
最新推荐文章于 2023-12-25 09:09:56 发布