python简单实现AES加密和解密


Posted in Python onMarch 28, 2019

本文实例为大家分享了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 相关文章推荐
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
wxPython使用系统剪切板的方法
Jun 16 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
Python中logging实例讲解
Jan 17 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
Python文件读写常见用法总结
Feb 22 Python
python3 实现的对象与json相互转换操作示例
Aug 17 Python
tensorboard显示空白的解决
Feb 15 Python
keras 多gpu并行运行案例
Jun 10 Python
如何通过python检查文件是否被占用
Dec 18 Python
python re模块和正则表达式
Mar 24 Python
Python中dict和set的用法讲解
Mar 28 #Python
python3.x实现base64加密和解密
Mar 28 #Python
python实现AES加密解密
Mar 28 #Python
详解python tkinter教程-事件绑定
Mar 28 #Python
Python中捕获键盘的方式详解
Mar 28 #Python
python sort、sort_index方法代码实例
Mar 28 #Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 #Python
You might like
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
通过文字传递创建的图形按钮
2006/10/09 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
学院书画协会部门岗位职责
2013/12/01 职场文书
房产公证书格式
2015/01/26 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis