python简单实现AES加密和解密

 更新时间:2019年03月28日 14:42:02   作者:Frankssss  
这篇文章主要为大家详细介绍了python简单实现AES加密和解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下

参考:python实现AES加密和解密

AES加密算法是一种对称加密算法, 他有一个密匙, 即用来加密, 也用来解密

import base64
from Crypto.Cipher import AES
# 密钥(key), 密斯偏移量(iv) CBC模式加密
 
def AES_Encrypt(key, data):
  vi = '0102030405060708'
  pad = lambda s: s + (16 - len(s)%16) * chr(16 - len(s)%16)
  data = pad(data)
  # 字符串补位
  cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))
  encryptedbytes = cipher.encrypt(data.encode('utf8'))
  # 加密后得到的是bytes类型的数据
  encodestrs = base64.b64encode(encryptedbytes)
  # 使用Base64进行编码,返回byte字符串
  enctext = encodestrs.decode('utf8')
  # 对byte字符串按utf-8进行解码
  return enctext
 
 
def AES_Decrypt(key, data):
  vi = '0102030405060708'
  data = data.encode('utf8')
  encodebytes = base64.decodebytes(data)
  # 将加密数据转换位bytes类型数据
  cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))
  text_decrypted = cipher.decrypt(encodebytes)
  unpad = lambda s: s[0:-s[-1]]
  text_decrypted = unpad(text_decrypted)
  # 去补位
  text_decrypted = text_decrypted.decode('utf8')
  return text_decrypted
 
 
key = '0CoJUm6Qyw8W8jud'
data = 'sdadsdsdsfd'
AES_Encrypt(key, data)
enctext = AES_Encrypt(key, data)
print(enctext)
text_decrypted = AES_Decrypt(key, enctext)
print(text_decrypted) 
hBXLrMkpkBpDFsf9xSRGQQ==
sdadsdsdsfd

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python内置debug库pdb用法示例详解

    Python内置debug库pdb用法示例详解

    这篇文章主要介绍了Python内置debug库pdb用法的相关资料,Python的内置调试器pdb可以有效帮助开发者掌握程序执行流程和变量状态,通过插入pdb.set_trace()设置断点,或直接从命令行启动pdb,可以进入交互式调试模式,需要的朋友可以参考下
    2024-11-11
  • python 获取指定文件夹下所有文件名称并写入列表的实例

    python 获取指定文件夹下所有文件名称并写入列表的实例

    下面小编就为大家分享一篇python 获取指定文件夹下所有文件名称并写入列表的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python库Theano深度神经网络的设计训练深入探究

    Python库Theano深度神经网络的设计训练深入探究

    Theano是一个用于深度学习的Python库,它提供了高效的数值计算和自动微分功能,使得深度神经网络的设计和训练变得更加容易,本文将深入探讨Theano的功能和用法,并提供丰富的示例代码,帮助大家入门深度学习
    2024-01-01
  • 详解如何在Python中使用Jinja2进行模板渲染

    详解如何在Python中使用Jinja2进行模板渲染

    Jinja2 是一个现代的、设计精美的 Python 模板引擎,它使用类似于 Django 的模板语言来渲染文本文件,下面我将通过几个例子展示如何在 Python 中使用 Jinja2 进行模板渲染,文中有详细的代码供大家参考,需要的朋友可以参考下
    2024-08-08
  • 详解Python如何使用PyBuilder从零开始构建项目

    详解Python如何使用PyBuilder从零开始构建项目

    PyBuilder是一个用于构建Python项目的工具,它提供了一种简单而强大的方式来管理项目的依赖、运行测试、生成文档等任务,下面就跟随小编一起来学习一下如何使用PyBuilder构建项目吧
    2024-03-03
  • 解决python中导入win32com.client出错的问题

    解决python中导入win32com.client出错的问题

    今天小编就为大家分享一篇解决python中导入win32com.client出错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python标准库os.path包、glob包使用实例

    Python标准库os.path包、glob包使用实例

    这篇文章主要介绍了Python标准库os.path包、glob包使用实例,本文直接给出代码,代码中有详细注释,需要的朋友可以参考下
    2014-11-11
  • Python实现将图片批量转为PDF

    Python实现将图片批量转为PDF

    在日常办公和处理图片时,我们常常需要将多张图片合并成一个PDF文件,所以本文为大家介绍了如何使用Python实现图片批量转为PDF,感兴趣的可以了解下
    2024-12-12
  • Python使用PyPDF2操作PDF的详细教程

    Python使用PyPDF2操作PDF的详细教程

    PyPDF2是一个用于处理PDF文件的Python库,可以读取、合并、拆分、裁剪和修改PDF文件,以下是一些使用PyPDF2的基本示例,包括如何安装该库以及执行一些常见的PDF操作,需要的朋友可以参考下
    2025-02-02
  • python安装教程

    python安装教程

    这篇文章主要为大家详细介绍了python安装教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论