介绍
在python中使用aes进行加解密的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
高级加密标准(英语:高级加密标准,缩写:aes),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS 197酒吧,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。- - - - - -百度百科
本科的时候弄过DES加密算法加密计算机文件,而DES加密算法现在基本处于被废弃的状态,所以现在想试试更高级一点的。
DES加密算法可发展为3 DES加密算法,后来又被升级为aes加密算法,加长了密钥长度,也就增加了暴力破解的难度。
本次使用python进行aes的加密解密
import hashlib 得到Crypto.Cipher import  AES import base64 class prpcrypt (): ,def __init__(自我,键): self.key 才能=,key #,因为在python3中AES传入参数的参数类型存在问题,需要更换为,bytearray ,,所以使用编码编码格式将其转为字节格式(linux系统可不用指定编码) IV 才能=,16,*,& # 39;\ x00 # 39; self.iv才能=IV.encode (“utf-8") self.mode 才能=AES.MODE_CBC self.BS 才能=AES.block_size self.pad 才能=,lambda 销售:,s +, (self.BS 安康;len (s), %, self.BS), *,空空(self.BS 安康;len (s), %, self.BS) self.unpad 才能=,lambda 销售:,年代(0:奥德(s [1])) ,#加密 ,def 加密(自我,文本): 时间=text 才能;self.pad(文本).encode (“utf-8") 时间=cryptor 才能;AES.new (self.key, self.mode,, self.iv) #才能,目前aes - 128,足够目前使用(CBC加密) 时间=ciphertext 才能;cryptor.encrypt(文本) #,base64才能加密 return 才能;base64.b64encode(字节(密文)) ,#解密 ,def 解密(自我,文本): #,base64才能解密 时间=text 才能;base64.b64decode(文本) 时间=cryptor 才能;AES.new (self.key, self.mode,, self.iv) #,CBC才能解密 时间=plain_text 才能;cryptor.decrypt(文本) #,才能去掉补足的空格用带(),去掉 return 才能;self.unpad (bytes.decode (plain_text) .rstrip(& # 39; \ 0 & # 39;)), #,解密字节? ? ? def gen_binsha(数据):=,,shavalue  hashlib.sha256 () ,shavalue.update(数据) ,return shavalue.digest () if __name__ ==, & # 39; __main__ # 39;: 78年,关键=& # 39;f40cecf89& # 39; ,关键=gen_binsha (key.encode (& # 39; utf - 8 # 39;))=,,pc  prpcrypt(键=键),#,初始化密钥,和iv=& # 39;,文本qwerqwerkkk12345& # 39;=,,e  pc.encrypt(文本),#,加密=,,d  pc.decrypt (e), #,解密 ,打印(“加密:% s", %, e) ,打印(“解密:% s" %, d) ,打印(“长度:% s" %, len (d))
看完上述内容,你们掌握在python中使用aes进行加解密的方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!