想必很多同学在面试的时候都会被问到,接口被加密了,该如何测试呢?
首先,我们来说一下接口为什么要进行加密?
什么是加密接口
顾名思义,传参的时候只能用密文发送,不能用明文发送的接口就是加密接口
加密与非加密的区别
举个🌰:咱们最常见登录操作,打开调试窗口,我们在输入用户名密码之后点击登录,可以看到我们调用的登录接口,在接口的返回数据中,可以看到登录的用户名和密码是明文显示,说明该接口没有进行加密操作。
如果一个登录接口是加密的,那么我们在接口工具中直接使用 用户名、密码登录是无法登录成功的,即使你的用户名密码正确,他还是会提示你的用户名密码不正确。
接口加密的重要性
客户端服务端通过网络进行数据传输,我们在登录一个网站的时候需要联网(比如路由器),客户端发送的任何请求都会经过路由器,也就是路由器会记录所有的网络传输数据,然后再由路由器发送到服务端,路由器就像一个中间件一样的存在,所以数据很容易被中间件窃取,这就是为什么需要接口加密。
那么作为QA,如果在测试的过程中遇到加密的接口我们该怎么处理呢?
让开发给我们开一个能调用的内部接口,或者把加密好的数据直接给我们
but如果遇到数据量大的情况,每次都找研发给我们构造数据,不仅会进家开发的工作量,而且数据是会变化的
让开发能给我们提供代码,我们自己去运行
这种情况如果遇到问题,需要研发协助我们解决,若遇到频繁报错,一直叫研发会觉得不太好,但是不叫自己又解决不了
所以最好的方式就是
利用python的固定语法,自己去完成对应的加解密代码
import requests
import json
import jsonpath
import base64
from Crypto.Cipher