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 相关文章推荐
详解Django框架中的视图级缓存
Jul 23 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
python之拟合的实现
Jul 19 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
Pandas中DataFrame基本函数整理(小结)
Jul 20 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
Python之Sklearn使用入门教程
Feb 19 Python
深入理解pytorch库的dockerfile
Jun 10 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的ajax简单实例
2014/02/27 PHP
PHP制作用户注册系统
2015/10/23 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
Expandable "Detail" Table Rows
2007/08/29 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
Python解析nginx日志文件
2015/05/11 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python实现扫雷游戏
2020/03/03 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
气象学专业个人求职信
2014/04/22 职场文书
加入学生会演讲稿
2014/04/24 职场文书
党员剖析材料范文
2014/12/18 职场文书
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL