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实现颜色色值转换的小工具
Oct 27 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
Python实现时钟显示效果思路详解
Apr 11 Python
Python中property函数用法实例分析
Jun 04 Python
python 读取文件并替换字段的实例
Jul 12 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
使用Python进行防病毒免杀解析
Dec 13 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
asyncio异步编程之Task对象详解
Mar 13 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获取中英混合字符串长度的方法
2014/06/07 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
Canvas实现放射线动画效果
2017/02/15 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
利用Python获取操作系统信息实例
2016/09/02 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python实现二叉树的遍历
2017/12/11 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
python实现三壶谜题的示例详解
2020/11/02 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
大学学习计划书范文
2014/05/02 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
卫生标语大全
2014/06/21 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫