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 相关文章推荐
在Docker上开始部署Python应用的教程
Apr 17 Python
详细介绍Python中的偏函数
Apr 27 Python
python中set常用操作汇总
Jun 30 Python
python中的字典使用分享
Jul 31 Python
python 堆和优先队列的使用详解
Mar 05 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
python的reverse函数翻转结果为None的问题
May 11 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
详解python UDP 编程
Aug 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
基于header的一些常用指令详解
2013/06/06 PHP
php生成zip文件类实例
2015/04/07 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python中使用while循环的实例
2019/08/05 Python
飞利浦法国官网:Philips法国
2019/07/10 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
国际贸易本科毕业生求职信
2014/09/26 职场文书
毕业生见习报告总结
2014/11/08 职场文书
商业门面租房协议书
2014/11/25 职场文书
作文评语怎么写
2014/12/25 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
详细介绍python类及类的用法
2021/05/31 Python