河南软件测试公司:测接口遇到APP加密怎么办?
发布时间:2022-01-21 16:03
阅读数:

【河南软件测试公司:测接口遇到APP加密怎么办?】

服务端与客户端进行http通讯时,为了防止被爬虫,数据安全性等,引入APP通信加密,简单来说,就是引入签名signAPP的所有请求都会经过加密签名校验流程。常见的加密方案有AES加密,RSA加密,MD5加密等。由于引入签名sign请求头,我们在测APP.. 解决方案 测试 · 通过抓包把APP的请求头和请求参数抓下来,通过postman测试 · 询问开发具体的加密过程,复写一套加密算法,自己生成加密数据 方案分析 测试环境关闭签名验证,可能对代码改动比较大,容易留下坑,有可能上线部署时忘记打开签名验证,这会造成极大的影响;也有可能改动不大,开发代码比较规范,上线比较规范;(每个公司情况不一样~)可以作为备选方案。 接口测试 复写过程可能比较复杂,可能比较简单,需要开发协助说明整个加密过程(一杯奶茶就好了)复写过程中又可以锻炼自己的code能力,推荐。 方案实现过程 验签说明 参数名按ASCII码从小到大排序(字典序)如果参数的值为空(null值,空格、空字符串)不参与签名,参数名区分大小写;如参数的类型为复合类型不参与签名(如:List[Map]类型或List[String]类型或List[int]类型)。 使用URL键值对的格式(key1=value1&key2=value2…)拼接成待签名的字符串plain,plain最后拼接上key(密钥)plain=plain+&key=分配的密钥”,再将plain进行签名运算sign=Base64(MD5(plain)) sign字符串放在http报文头中X-Sign字段。 验签步骤拆解 · 参数名按ASCII码从小到大排序 · 参数值为空(null值,空格、空字符串)不参与签名 Python · 拼接键值对,格式为key1=value1&key2=value2 · 键值对后面拼接key(密钥) · 键值对字符串先经过MD5加密,再进行base64编码 py实现 因为有用到dict.pop()方法,这会对原来的data进行改变,所以我们传入data的时候,对data进行浅拷贝: data = data.copy() 字符串要去除空格、换行符,实际服务端进行加密生成时,也会对字符串进行去除空格、换行符: v = v.replace(" ", "").replace("\n", "") data[k] = v 算法验证 成功打印输出返回参数,大功告成~ api集成 你可以将生成加密数据做成一个api提供给小伙伴使用,传入待加密的请求报文,返回加密数据,小伙伴复制粘贴加密数据到请求头,即可完成接口测试。

河南电子规划院在立足原有的信息产业业务的基础上,瞄准物联网解决方案、互联网+、云计算大数据等领域进行了深入的探索,同时开展了软件研发开发、软件测评、两化融合贯标咨询、信息化咨询设计、软件测试、信息化监理服务等一系列服务。努力打造服务于河南郑州范围信息产业的全生态体系服务机构。


标签:

【本文标题】河南软件测试公司:测接口遇到APP加密怎么办?,【本文网址】http://www.dzytc.cnhttp://www.dzytc.cn/news/121.html