获取token
获取响应的token
print('token值--->',resp.json()['data]['token'])
直接获取字典格式的数据
print('token的值是--->,jsonpath.jsonpath(resp.json(),"s.data.token'))
接口加密操作
MD5加密
# 定义md5加密的函数
'''
1.输入参数: 字符串类型
2.调用对应库的加密方法去处理
3.得到返回值!
'''
'''
MD5盐值
password: xintian+盐值(字符串 数字 时间戳 随机数)
函数定义参数的时候,如果参数有默认值,怎么选择这个默认值:Nonearr0
'''
def get_md5_data(data: str, salt='') -> str:
'''
:param data: 加密的数据
:param salt;盐值,默认是空字符串
:return: 密文
'''
# 1,创建一个md5对象
md5 = hashlib.md5()
# 2.进行加密
data = f'{data}{salt}'
md5.update(data.encode('utf-8'))
# 3, 返回加密后的密文return md5.hexdigest()
res = get_md5_data('YAnanq', 100)print(res)
RSA加密
概述: 很流行的一种数据加密方法
非对称加密: 一对密钥
公钥: 客户端拿到这个公钥,使用对应的函数把明文数据,加密,公钥可以 公开
私钥: 客户端请求发过来密文,需要校验,使用私钥去解密,做判断数据是 否,匹配
怎么获取公钥? 1.直接找开发要 2.有些项目可以测试人员自己获取 浏览器打开项目---F12---控制台---输入publickey
扩展: 公钥加密,私钥解密;私钥签名,公钥验签 加密: 保证数据在网络传送中就算被人抓包,不能直接看到具体的数据 签名: 签名,保证用户的身份
rsa实战练习
'''
RSA加密的代码编辑:
1- 安装对应的库 cmd---pip install pycryptodome
2- rsa加密处理流程:
- 1.先获取加密公钥文件
- 2.输入需要加密的明文数据---加密函数一定有一个形参data
- 3.把输入的字符串---byte(加密都是对字节加密) str:'abc'-----b'abc
- 4.使用加密方法加密
- 5.使用base64编码(加密的密文进行编码)
- 6.解码---密文是bytes字节码---dencode()-----字符串
'''
from Crypto.PublicKey import RSA
from Crypto.ciphen import PKCS1_v1_5 as PKCS1_cipher
class RsaEncrypt:
def __init__(self,file_path='./'): # 默认是当前路径
self.file_path = file_path
def encrypt(self,data: str): # 加密方法
# 1.打开读取文件内容
with open(f'{self.file_path}public.pem','rb') as fo:
# 2. 获取公钥的内容
key_content_bytes = fo.read()
# 3. 把需要加密的源数-- 转成--- 字节码
data = data.encode('utf-8')
# 4. 把公朗的内容- 转换--RSA公朗对象
public_key = RSA.importKey(key_content_bytes)
# 5. 使用公钥对象生成一个加密对象
cipher = PKCS1_cipher.new(public_key)
# 6.加密操作---data此时是字节码
encrypt_text = cipher.encrypt(data)
# 7.先使用base64编码--- 使用解码--- 字符串的密文
return base64.b64encode(encrypt_text).decode('utf-8')
cookie和session
cookie服务端传给客户端,存在本地,是身份认证机制,cookie可以被伪造
session是浏览器访问服务器,在服务器里产生session对象(id属性,其他属性)存放在服务器,session不能被伪造,但是高并发时会产生很多session,影响性能
sessionid是客户端第一次访问服务器,服务器会产生sessionid
1、访问网站的任何页面都会返回sessionid-电商项目
2、只有登录完成才会返回sessionid- 教管系统