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 Django做网页
Nov 04 Python
python安装以及IDE的配置教程
Apr 29 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
Python生成器generator用法示例
Aug 10 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 Python
python如何爬取网页中的文字
Jul 28 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
Python3读写ini配置文件的示例
Nov 06 Python
Python+Appium新手教程
Apr 17 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
咖啡的传说和历史
2021/03/03 新手入门
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
Javascript var变量隐式声明方法
2009/10/19 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
python新手经常遇到的17个错误分析
2014/07/30 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
迟到检讨书5000字
2014/01/31 职场文书
小区推广策划方案
2014/06/06 职场文书
跑操口号
2014/06/12 职场文书
民事授权委托书范文
2014/08/02 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
公积金贷款承诺书
2015/04/30 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
毕业实习感受与体会
2015/05/26 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
Python OpenGL基本配置方式
2022/05/20 Python