gpt4 book ai didi

分享一个python的aes加密代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章分享一个python的aes加密代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。---百度百科 。

本科的时候弄过DES加密算法加密计算机文件,而DES加密算法现在基本处于被废弃的状态,所以现在想试试更高级一点的.

DES加密算法可发展为3DES加密算法,后来又被升级为AES加密算法,加长了密钥长度,也就增加了暴力破解的难度.

本次使用Python进行AES的加密解密 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import hashlib
from Crypto.Cipher import AES
import base64
 
class prpcrypt():
  def __init__( self ,key):
   self .key = key # 因为在python3中AES传入参数的参数类型存在问题,需要更换为 bytearray , 所以使用encode编码格式将其转为字节格式(linux系统可不用指定编码)
   IV = 16 * '\x00'
   self .iv = IV.encode( "utf-8" )
   self .mode = AES.MODE_CBC
   self .BS = AES.block_size
   self .pad = lambda s: s + ( self .BS - len (s) % self .BS) * chr ( self .BS - len (s) % self .BS)
   self .unpad = lambda s: s[ 0 : - ord (s[ - 1 ])]
 
  # 加密
  def encrypt( self , text):
   text = self .pad(text).encode( "utf-8" )
   cryptor = AES.new( self .key, self .mode, self .iv)
   # 目前AES-128 足够目前使用(CBC加密)
   ciphertext = cryptor.encrypt(text)
   # base64加密
   return base64.b64encode(bytes(ciphertext))
 
  # 解密
  def decrypt( self , text):
   # base64解密
   text = base64.b64decode(text)
   cryptor = AES.new( self .key, self .mode, self .iv)
   # CBC解密
   plain_text = cryptor.decrypt(text)
   # 去掉补足的空格用strip() 去掉
   return self .unpad(bytes.decode(plain_text).rstrip( '\0' )) # 解密字节???
 
 
def gen_binsha(data):
  shavalue = hashlib.sha256()
  shavalue.update(data)
  return shavalue.digest()
 
if __name__ = = '__main__' :
  key = '78f40cecf89'
  key = gen_binsha(key.encode( 'utf-8' ))
  pc = prpcrypt(key = key) # 初始化密钥 和 iv
 
  text = 'qwerqwerkkk12345'
  e = pc.encrypt(text) # 加密
  d = pc.decrypt(e) # 解密
  print ( "加密:%s" % e)
  print ( "解密:%s" % d)
  print ( "长度:%s" % len (d))

以上就是分享一个python的aes加密代码的详细内容,更多关于python的aes加密代码的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/yuqiao668/archive/2020/12/22/14173273.html 。

最后此篇关于分享一个python的aes加密代码的文章就讲到这里了,如果你想了解更多关于分享一个python的aes加密代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com