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 与服务器的共享文件夹交互方法
Dec 27 Python
python实现多层感知器
Jan 18 Python
python爬虫 urllib模块url编码处理详解
Aug 20 Python
linux下python中文乱码解决方案详解
Aug 28 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
python 字段拆分详解
Dec 17 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
python的reverse函数翻转结果为None的问题
May 11 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
python基础之类方法和静态方法
Oct 24 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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 Error与Logging函数的深入理解
2013/06/03 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
javascript下string.format函数补充
2010/08/24 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
webpack入门必知必会
2017/01/16 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
python解析模块(ConfigParser)使用方法
2013/12/10 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python3爬虫学习入门教程
2018/12/11 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
Python解析json代码实例解析
2019/11/25 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
商务专员岗位职责
2013/11/23 职场文书
支部书记四风对照材料
2014/08/28 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
留学推荐信怎么写
2015/03/26 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL