在python中使用aes进行加解密的方法

  介绍

在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进行加解密的方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

在python中使用aes进行加解密的方法