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 相关文章推荐
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
python处理圆角图片、圆形图片的例子
Apr 25 Python
Python连接phoenix的方法示例
Sep 29 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
Python中的引用知识点总结
May 20 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Django之路由层的实现
Sep 09 Python
python实现简单颜色识别程序
Feb 19 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
GitHub上值得推荐的8个python 项目
Oct 30 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
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python语言中有算法吗
2020/06/16 Python
Django nginx配置实现过程详解
2020/09/10 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
师范应届毕业生自荐信
2013/11/18 职场文书
电脑教师的自我评价
2013/12/18 职场文书
党员个人公开承诺书
2014/08/29 职场文书
企业2014年度工作总结
2014/12/10 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
Pytest allure 命令行参数的使用
2021/04/18 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL