python aes加密 cbc_【转载】python AES CBC模式加密
今天需要用到AES CBC模式加密,搜索了很久,终于加密成功,记录一下今天的理解。
首先要安装pycrypto库,不知道为什么在windows安装失败,在linux可以正常安装
这里有几点要注意,key的长度要是16,24或32,text的长度要是16的倍数,不满足长度都会补全,补全的字符可以自己定义,比如key补全不一定要"\0", 你还可以用其他的,text补全的字符在你解密的时候会用到,
不过下面补全的字符应该是和上面两个url补全的字符一样的。
# -*- encoding: utf-8 -*-
from Crypto.Cipher import AES
import base64
BS = AES.block_size # 这个等于16
mode = AES.MODE_CBC
pad = lambda s: s + (BS-len(s))*"\0" # 用于补全key
# 用于补全下面的text,上面两个网址就是用以下形式补全的
pad_txt = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s : s[0:-ord(s[-1])]
key = "123" # the length can be (16, 24, 32) # key
text = 'http://www.baidu.com/' # 加密文本
vi = "HjRP7LlXuSsFMisz" # 偏移量
cipher = AES.new(pad(key), mode, vi)
encrypted = cipher.encrypt(pad_txt(text))
#通过aes加密后,再base64加密
encrypted = base64.b64encode(encrypted)
print(encrypted)
cryptor=AES.new(pad(key),mode, vi)
# 解密,解密后text文本会包含用来补全的字符
plain_text = cryptor.decrypt(base64.b64decode(encrypted))
print(plain_text)
python aes加密 cbc_【转载】python AES CBC模式加密相关推荐
- python aes加密 cbc_Python实现AES的CBC模式加密和解密过程详解 和 chr() 函数 和 s[a:b:c] 和函数lambda...
1.chr()函数 chr() 用一个范围在 range(256)内的(就是0-255)整数作参数,返回一个对应的字符. 2.s[a:b:c] s=(1,2,3,4,5) 1>. s[a]下标访 ...
- 化学人学python有前途吗-转载:python之蟒开启理论计算化学的新时代
转载:python之蟒开启理论计算化学的新时代 (2014-01-23 23:04:00) 标签: python gaussian python之蟒开启理论计算化学的新时代 就像iphone和andr ...
- go、JS AES(CBC模式)加密解密兼容
js 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- format函数python的顺序_[转载] Python中format函数用法
Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...
- python 每次读一行-转载 python每次读入文件一行的问题(血的教训啊)
注意到Python每次读入一个文件的一行时,可以有两种写法: f = open("bigFile.txt","r") while True: line = f. ...
- python中await async_[转载]python中的await和async
原文https://blog.csdn.net/Likianta/article/details/90123678 from time import sleep, time def demo1(): ...
- python base64编码_JS和Python实现AES算法
1. AES原理 AES算法是典型的对称加密算法,AES原理可以学习这两篇文档: 漫画:什么是AES算法:https://www.toutiao.com/i6783550080784794124/ A ...
- 【加密】DES加密算法中,ECB和CBC模式有什么区别?
目录 ECB和CBC模式的区别 ECB模式 CBC模式: AES五种加密模式(CBC.ECB.CTR.OCF.CFB) ECB (Electronic Codebook Book电码本模式) CBC( ...
- java中3des cbc,js與java通用的3DES(ECB,CBC)+Base64加密編碼,解碼解密
J S端加密過程: key的處理: 通過創建指定的key,key必須是16位/24位/32位其中一種,但是常用的3DES加密的key為24位,下面使用的就是24位,key的長度可以隨意指定,在轉換ke ...
最新文章
- 基于Matlab的神经网络结合遗传算法在非线性函数极值寻优中的应用
- PowerShell_5_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
- k8s集群配置使用coredns代替kube-dns
- Qt Creator寻找
- 原作者出局,Faker.js已被社区控制
- CodeForces - 1304D Shortest and Longest LIS(构造+贪心)
- 洛谷 P2163 [SHOI2007]园丁的烦恼 (离线sort,树状数组,解决三维偏序问题)
- 【POJ - 3723】Conscription (最大生成树,最小生成树MST变形)
- 阮一峰的Javascript模块化编程(三):require.js的用法
- BZOJ5249:[九省联考2018]IIIDX——题解
- c++ class 类名 和 include 的区别
- 开源公司黄页之Facebook开源软件推荐(一)
- 反序列化对象列表发生异常_面试官:你知道Java对象的序列化与反序列化背后的原理吗?...
- MySQL 常用分库分表方案,都在这里了!
- hbase java 教程_Hbase 教程-安装
- Java初级程序员需要知道的基本Java代码规范
- Flutter-16进制透明颜色对照表
- Postgres-XL 9.5简易搭建
- 进入大数据时代,目前我国大数据的发展趋势怎么样
- html img 拉伸,图片因img标签拉伸的处理办法
热门文章
- ResNet在分别在Keras和tensorflow框架下的应用案例
- 数据产品-数据分析和可视化工具Excel基础使用
- Moment.js常见用法总结 1
- 招兵买马,韩国现代将前GM研究员招致麾下
- kali操作系统SSH问题解决方案
- (转)使用CGLIB实现AOP功能与AOP概念解释
- Mysql 新增用户可访问指定数据库所有权限
- 打造TypeScript的Visual Studio Code开发环境
- Linux下性能监控工具介绍
- WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变...