1、chr()函数

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

2、s[a:b:c]

s=(1,2,3,4,5)

1>、 s[a]下标访问s列表内内容

列表下标从0开始,即

s[0]=1

s[1]=2

s[4]=5

s[-1]=5

s[-2]=4

2>、s[a:b]

这是一个左闭右开区间,即

s[0:2]=(1,2)

s[0:3]=(1,2,3)

s[0:-1]=(1, 2, 3, 4)

s[0:-2]=(1,2,3)

3>、s[a:b:c]即s[起始位置:终止位置:步长]

line = "abcde"line[::-1]#结果为:"edcba"#line[::-1]其实就是反转字符串。

a='python'b=a[::-1]print(b) #nohtyp

c=a[::-2]print(c) #nhy

a[i:j:s]#表示:i,j与上面的一样,但s表示步进,缺省为1.#所以a[i:j:1]相当于a[i:j]#当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1#所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍,即倒序。

3、匿名函数lambda

#-*- coding:utf-8 -*-#__author__ = "www.iplaypy.com"

#普通python函数

deffunc(a,b,c):return a+b+cprint func(1,2,3)#返回值为6

#lambda匿名函数

f = lambda a,b,c:a+b+cprint f(1,2,3)#返回结果为6

'''f = lambda a,b,c:a+b+c 中的关键字lambda表示匿名函数,

冒号:之前的a,b,c表示它们是这个函数的参数。

匿名函数不需要return来返回值,表达式本身结果就是返回值。'''

4、Python实现AES加密和解密

这里采用CBC模式:CBC模式对于每个待加密的密码块在加密前会先与前一个密码块的密文异或然后再用加密器加密。第一个明文块与一个叫初始化向量的数据块异或。

importbase64from Crypto.Cipher importAES#密钥(key), 密斯偏移量(iv) CBC模式加密

defAES_Encrypt(key, data):

vi= '0102030405060708' #密钥偏移量

pad = lambda s: s + (16 - len(s)%16) * chr(16 - len(s)%16) #定义一个函数,这个函数的名字pad,这个函数需要一个参数,也就是s。

data = pad(data) #因为CBC模式AES加密需要满足加密数据长度是密钥长度的整数倍,所以如果长度不是整数倍,要加数据

#下面两行就调用函数完成了加密

cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))#加密后得到的是bytes类型的数据

encryptedbytes = cipher.encrypt(data.encode('utf8'))#使用Base64进行编码,返回byte字符串

encodestrs =base64.b64encode(encryptedbytes)#对byte字符串按utf-8进行解码

enctext = encodestrs.decode('utf8')returnenctextdef AES_Decrypt(key, data): #解密过程也就是加密过程的逆过程

vi = '0102030405060708' #密钥偏移量

#转成byte字符串

data = data.encode('utf8')#使用base64解码,将加密数据转换位bytes类型数据

encodebytes =base64.decodebytes(data)#下面两行代码对数据解密操作

cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))

text_decrypted=cipher.decrypt(encodebytes)#因为CBC模式AES加密需要满足加密数据长度是密钥长度的整数倍,所以数据后面可能有不需要的后来添加的数据,所以我们就去掉

#因为添加后缀的时候按照“16 - len(s)%16”,那么后面那个字符的码值也就是原串原来长度差了多少是16整数倍

unpad = lambda s: s[0:-s[-1]]

text_decrypted=unpad(text_decrypted)

text_decrypted= text_decrypted.decode('utf8')returntext_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 aes加密 cbc_Python实现AES的CBC模式加密和解密过程详解 和 chr() 函数 和 s[a:b:c] 和函数lambda...相关推荐

  1. mcrypt php 加密解密,PHP mcrypt启用、加密以及解密过程详解

    Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原. 1.安装PHP加密扩展Mcrypt 要使用该扩展,必须首先安装mcrypt标准类库,注意的是mcrypt软件依赖libmc ...

  2. python进程socket通信_Python Socket TCP双端聊天功能实现过程详解

    SOCKET编程 socket(套接字):是一个网络通信的端点,能实现不同主机的进程通信, -通过IP+端口定位对方并发送消息的通信机制 分为UDP和TCP 客户端Client: 发起访问的一-方 服 ...

  3. python做动态折线图_Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图 ...

  4. https加密解密过程详解

    要点: https协议对传输内容进行加密,具有更强的安全性,防止被抓包后解析出请求内容. https是建立在ssl之上的http协议. 服务器支持https协议必须安装一套数字证书,所谓数字证书就是一 ...

  5. python数据可视化的特点_Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图 ...

  6. python aes加密 cbc_【转载】python AES CBC模式加密

    今天需要用到AES CBC模式加密,搜索了很久,终于加密成功,记录一下今天的理解. 首先要安装pycrypto库,不知道为什么在windows安装失败,在linux可以正常安装 这里有几点要注意,ke ...

  7. 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)

    在最近的项目中,前端后台数据交互需要进行加密之后传输使用,以保证系统数据的安全.有关数据加密解密的问题,有很多种加密的方式,在这里我选择了AES的加密方式.特此写下此篇博文,总结讲述下PHP和JS进行 ...

  8. aes js加密php解密实例,基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码...

    [实例简介] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码 [实例截图] [核心代码] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_ ...

  9. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

最新文章

  1. 欲精一行,必先通十行
  2. cocos2dx 运动+旋转动画 CCSequence CCAnimation CCAnimate CCMoveTo CCCallFuncN
  3. MyBatis(增删改查)
  4. MyBatis 解决了什么问题?
  5. c# 无损高质量压缩图片代码
  6. 如何给女朋友解释什么是撞库、脱库和洗库?
  7. OpenJudge NOI 1.16 08:石头剪刀布
  8. Angular6入门
  9. NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序
  10. 如何卸载赛门铁克(Symantec)企业防病毒客户端软件SEP(Symantec Endpoint Protection)?
  11. Java速成系列-02-Java的版本
  12. 计算机视觉教程(第2版)1-8章期末复习
  13. 2022 CNCC 中国计算机大会参会总结
  14. 关于设置系统声音的方法
  15. Android 音视频配音之音频提取、截断、混音、合并、合成(一)——从视频中提取音频文件
  16. GO 中 Chan 实现原理分享
  17. 【FPGA】一些基本模块代码
  18. C primer plus——C进阶探幽
  19. sql文字转换全拼_SQL自定义函数:由汉字生成拼音全拼
  20. WenetSpeech数据集的处理和使用

热门文章

  1. TIP 2019开源论文:基于深度学习的HEVC多帧环路滤波方法
  2. NAACL 2019最佳论文:量子概率驱动的神经网络
  3. ACM MM18 | 用于跨模态检索的综合距离保持自编码器
  4. 阿里巴巴虾米的机器学习与深度学习进阶记
  5. 算法分析与设计-实验四 回溯算法设计
  6. python画日漫_不能错过的Python漫画
  7. pandas 索引_Pandas学习笔记03数据清洗(通过索引选择数据)
  8. 十大经典排序算法总结(够兄弟们喝一壶的)
  9. spring-bean依赖注入-02(通过p命名空间注入)
  10. 解决冲突神器(maven helper)