Python实现各种加密,接口加解密不说难

Hi , 大家好 。我们在接口自动化测试项目中 , 有时候需要一些加密 。今天给大伙介绍Python实现各种 加密  , 接口加解密再也不愁 。
目录一、项目加解密需求分析
六、Python加密库PyCryptodome
一、项目加解密需求分析1、网络数据传输面临的问题

私信小编01即可获取大量Python学习资源
网络安全涉及很多方面 , 而网络数据的安全传输通常会面临以下几方面的威胁 。
  • 数据窃听与机密性:怎样保证数据不会因为被截获或窃听而暴露?
  • 数据篡改与完整性:怎样保证数据不会被恶意篡改?
  • 身份冒充与身份验证:怎样保证数据交互双方的身份没有被冒充?
2、解决方案针对网络数据安全问题 , 可以用以下几种数据加密方式来解决(每种数据加密方式有多种不同的算法实现):
数据加密方式描述主要解决的问题常用算法对称加密
指数据加密和解密使用相同的密钥
数据的机密性
DES, AES
非对称加密
也叫公钥加密 , 指数据加密和解密使用不同的密钥--密钥对儿
身份验证
DSA , RSA
单向加密
指只能加密数据 , 而不能解密数据
数据的完整性
MD5 , SHA系列算法
3、Python加密模块主要用到以下几个模块:
模块名描述hashlib
主要提供了一些常见的单向加密算法(如 MD5  ,  SHA 等) , 每种算法都提供了与其同名的函数实现 。
hmac
提供了hmac算法的实现 , hamc也是单向加密算法 , 但是它支持设置一个额外的密钥(通常被称为'salt')来提高安全性
secrets
这是Python3.6中新增的模块 , 用于获取安全随机数 。
base64
该模块主要用于二进制数据与可打印ASCII字符之间的转换操作 , 它提供了基于Base16, Base32, 和Base64算法以及实际标准Ascii85和Base85的编码和解码函数 。
pycrypto
支持单向加密、对称加密和公钥加密以及随机数操作 , 这是个第三方模块 , 需要额外安装 。
4、字符串和Bytes互相转化我们所说的加密方式 , 都是对二进制编码的格式进行加密的 , 对应到Python中 , 则是我们的Bytes 。所以当我们在Python中进行加密操作的时候 , 要确保我们操作的是Bytes , 否则就会报错 。将字符串和Bytes互相转换可以使用encode()和decode()方法 。
(1) 使用encode()编码encode():str对象的方法 , 用于将字符串转换为二进制数据(即bytes) , 也称为“编码” 。
Python实现各种加密,接口加解密不说难

文章插图
 
输出结果:
原字符: ITester软件测试小栈字符转换成二进制: b'ITesterxc8xedxbcxfexb2xe2xcaxd4xd0xa1xd5xbb'(2) 使用decode()解码decode():bytes对象的方法 , 用于将二进制数据转换为字符串 , 也称为“解码” 。
Python实现各种加密,接口加解密不说难

文章插图
 
在设置解码采用的字符编码时 , 需要与编码时采用的字符编码一致 。使用decode()方法时 , 同样不会修改原字符串 。
二、Base64加密1、简介Base64是密码学的基石 , 用64个字符来表示任意二进制数据的方法 。可以将任意的二进制数据进行Base64编码 。所有的数据都能被编码为并只用65个字符就能表示的文本文件( 65字符:A~Z a~z 0~9 + / = ) 。
2、编码原理1.将所有字符转化为ASCII码 。
2.将ASCII码转化为8位二进制。
3.将二进制3个归成一组(不足3个在后边补0)共24位 , 再拆分成4组 , 每组6位 。
4.统一在6位二进制前补两个0凑足8位 。
5.将补0后的二进制转为十进制 。
6.从Base64编码表获取十进制对应的Base64编码 。
3、Python中base64的使用Python内置的base64模块可以直接进行base64的编解码。
Python实现各种加密,接口加解密不说难

文章插图
 
输出结果:
加密前为 :ITester软件测试小栈加密后为:SVRlc3Rlcui9r+S7tua1i+ivleWwj+agiA==三、MD5加密1、简介MD5加密即message-digest algorithm 5(信息-摘要算法) , 即信息-摘要算法 , 可以将一个字符串 , 或文件 , 或压缩包 , 执行md5后 , 就可以生成一个固定长度为128bit的串 。


推荐阅读