接口的鉴权&响应数据解密
前言:
1、开放的接口为了避免被别人攻击,频繁刷接口,浪费服务器资源,这就涉及到签名(Signature)加密了
2、API 使用签名方法(Signature)对接口进行鉴权(Authentication)。每一次请求都需要在请求中包含签名信息, 以验证用户身份。
一、我们的接口请求:
1、登录的url + key(一段已知的字符串) + get请求带上固定参数(有一个变动的时间戳)拼接成新的请求链接
2、拼接之后的链接通过 hashlib.md5 加密
3、加密之后的数据就是鉴权ydtoken
5、再把这个ydtoken传到每个接口请求的参数里面去,请求才能成功
二、鉴权的代码操作
# -*- coding:utf-8 -*-
from common import commons
import readConfig as readConfig
import hashlib localReadConfig = readConfig.ReadConfig() class getAuthentication(object): def get_Url(self,xlse_name,name,row=0,col=1):
'''
从excel里面获取登录的url,账号和密码,然后 url+固定参数,拼接成新的请求链接URL
'''
api_v = localReadConfig.get_http('api')
local_xls = commons.get_xls(xlse_name,name)
url = local_xls[row][col]
par = self.add_par()
get_url = '/'+api_v+url + "?" + par
return get_url def add_par(self):
# 固定参数:时间戳+固定参数,拼接成 a=1&b+2&c=3 的模式
fixed_parameter= localReadConfig.get_parameters()
list_a=[]
for key in dict(fixed_parameter):
list_a.append( key+'='+fixed_parameter[key])
list_b = '&'.join(list_a)
return list_b def get_ydtoken(self,url):
# 拼接之后的链接URL + 固定字符串 就行md5 加密,生成鉴权数据
# print((md5str))
key = "固定字符串"
new_md5str = key + url
# print(new_md5str)
byte_md5str = bytes(new_md5str, encoding="utf8") #必须传byte
ydtoken =hashlib.md5(byte_md5str).hexdigest()
return ydtoken
运行后的结果:

三、fiddler抓看响应时间,是加密后的数据,需要使用base64解密

代码操作
def get(self):
try:
r = requests.get(self.url, headers=self.headers, params=self.params, timeout=float(timeout))
print(r.url)
result = decodeToBase64(r.content) #decodeToBase64封装了解密方法,每个公司都会做一些改动,就不贴出来了
response = json.loads(result)
# response.raise_for_status()
return response
except TimeoutError:
self.logger.error("Time out!")
return None
解码之后:

接口的鉴权&响应数据解密的更多相关文章
- Spring Security 接口认证鉴权入门实践指南
目录 前言 SpringBoot 示例 SpringBoot pom.xml SpringBoot application.yml SpringBoot IndexController SpringB ...
- YAPI接口自动鉴权功能部署详解
安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境. 无论是选择在线安装或者是本地安装,都需要安装client工具. 1.yapi-cli:npm install yap ...
- 接口的鉴权cookie、session和token
1.HTTP是无状态协议 什么是无状态?就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息.好处就是速度快. 2.cookie.session的加入 HTTP请求是无状态的,所以解决共享信 ...
- 接口鉴权之sign签名校验与JWT验证
需求描述: 项目里的几个Webapi接口需要进行鉴权,同接口可被小程序或网页调用,小程序里没有用户登录的概念,网页里有用户登录的概念,对于调用方来源是小程序的情况下进行放权,其他情况下需要有身份验证. ...
- EasyNVR摄像机网页H5全平台无插件直播流媒体播放服务二次开发之接口鉴权示例讲解
背景需求 EasyNVR的使用者应该都清楚的了解到,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理可以 ...
- Onvif开发之客户端鉴权获取参数篇
前面一篇已经介绍了客户端如何发些设备,下面这篇简单介绍下在发现设备后,如何通过ONVIF协议来获取设备的相关参数 ONVIF中不管是客户端还是设备端,最先实现的接口都是关于能力的那个接口,在客户端实现 ...
- 【Spring Cloud & Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证授权.鉴权的逻辑,结合 ...
- SpringCloud 2020.0.4 系列之 JWT用户鉴权
1. 概述 老话说的好:善待他人就是善待自己,虽然可能有所付出,但也能得到应有的收获. 言归正传,之前我们聊了 Gateway 组件,今天来聊一下如何使用 JWT 技术给用户授权,以及如果在 Gate ...
- 取消mod_sofia的呼叫鉴权
FreeSWITCH中默认的SIP呼叫是要鉴权的,流程如下. 终端 FreeSWITCH A -----Invite------> FS A <----Trying------ FS A ...
随机推荐
- grid的简单使用
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>grid ...
- 把springboot的项目打包运行指南
受到传统mvc模式的开发影响,多数人都会想到把springboot项目打成war包在服务器容器里运行,笔者试过很多种方法打成war包部署tomcat上运行.运行成功但是怎么也访问不了,一直报404的错 ...
- leetcode-algorithms-3 Longest Substring Without Repeating Characters
leetcode-algorithms-3 Longest Substring Without Repeating Characters Given a string, find the length ...
- Homebrew 安装mysql
在mac上安装软件,无疑安装一个brew是个很好的选择,关于brew是什么,怎么安装建议去brew官网查看, 附上地址:brew官网 还有一篇博文 http://www.cnblogs.com/xd ...
- PostgreSQL常用查看命令
1. 查看当前库sehcma大小,并按schema排序 SELECT schema_name, pg_size_pretty(sum(table_size)::bigint) as "dis ...
- Python函数基础-函数调用,定义,参数,递归
Python内置了很多函数供调用,eg 求绝对值函数abs() >>>abs(-1) 1 >>>abs(1) 求和函数sum(),sum(iterable,star ...
- GIS入门基础知识点
自从国企辞职以后,找了一份关于GIS开发的工作,好多从事这个都是地理信息科学方面的专业.由于自己才疏学浅,只能从头入门学起,先是大致了解公司的业务以及产品,学习一下相关地理信息的基础知识. 首先今天简 ...
- 线程池 execute 和 submit 的区别
代码示例: public class ThreadPool_Test { public static void main(String[] args) throws InterruptedExcept ...
- nodejs安装 淘宝镜像
1◆ nodejs下载 2◆ 安装 3◆ 测试 4◆ 淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 5 ...
- etymon word flower bee apiary forget out~1
1● anth 2● flower 花 1● ap 2● bee 3● apiary 养殖场