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程序与C++程序的联合使用
Apr 07 Python
Django发送html邮件的方法
May 26 Python
python使用opencv读取图片的实例
Aug 17 Python
机器学习10大经典算法详解
Dec 07 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
python新式类和经典类的区别实例分析
Mar 23 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 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语法(2)
2006/10/09 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
PHP return语句的另一个作用
2014/07/30 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
页面中js执行顺序
2009/11/09 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
Python中unittest用法实例
2014/09/25 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python实现分数序列求和
2020/02/25 Python
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
辞职信格式模板
2015/02/27 职场文书
员工工作心得体会
2019/05/07 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python