【转】js生成接口请求参数签名加密
js生成接口请求参数签名加密
签名算法规则:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
第二步,在stringA最后拼接上KEY得到stringSignTemp字符串(即stringSignTemp = stringA + &key=KEY),并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue
用于签名的密钥KEY值为keysecret
注意事项:
a、参数名ASCII码从小到大排序(字典序);
b、如果参数的值为空(即null或空字符串)不参与签名;
c、参数名区分大小写;
d、验证签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验;
e、接口可能增加字段,验证签名时必须支持增加的扩展字段;
将所有参数字段按首字母排序, 拼接成key1 = value1 & key2 = value2的格式,再在末尾拼接上key = appSecret, 再做MD5加密生成sign,方法如下:
functiongetSign(params, kAppKey, kAppSecret) {
    if (typeof params == "string") {
        return paramsStrSort(params);
    } else if (typeof params == "object") {
        var arr = [];
        for (var i in params) {
            arr.push((i + "=" + params[i]));
        }
        return paramsStrSort(arr.join(("&")));
    }
}
functionparamsStrSort(paramsStr) {
    var url = paramsStr + "&appKey=" + kAppKey;
    var urlStr = url.split("&").sort().join("&");
    var newUrl = urlStr + '&key=' + kAppSecret;
    return md5(newUrl);
}
调用:
var params = "xid=" + xid + "&type=" + type + "&pageSize=" + pageSize + "&pageNo=" + pageNo;
var sign = getSign(params, kAppKey, kAppSecret);
或:
var paramsObj = { xid: xid, pageSize: pageSize, type: type, pageNo: pageNo };
var sign = getSign(paramsObj, kAppKey, kAppSecret);
kAppKey,kAppSecret为常量,一般由后端定义好!签名加密方法依托MD5!
也可以使用 js-md5、crypto 进行md5加密
转自:https://www.cnblogs.com/jone-chen/p/8143285.html
【转】js生成接口请求参数签名加密的更多相关文章
- js生成接口请求参数签名加密
		
js生成接口请求参数签名加密 定义规则:将所有参数字段按首字母排序, 拼接成key1 = value1 & key2 = value2的格式,再在末尾拼接上key = appSecret, 再 ...
 - jmeter通过BeanShell 脚本,实现对http请求参数的加密
		
jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...
 - python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)
		
前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅 ...
 - JS获取url请求参数
		
JS获取url请求参数,代码如下: // 获取url请求参数 function getQueryParams() { var query = location.search.substring(1) ...
 - go中处理各种请求方式以及处理接口请求参数
		
话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/ ...
 - 利用 Bean Validation 来简化接口请求参数校验
		
团队新来了个校招实习生静静,相互交流后发现竟然是我母校同实验室的小学妹,小学妹很热情地认下了我这个失散多年的大湿哥,后来... 小学妹:大湿哥,咱们项目里的 Controller 怎么都看不到参数校验 ...
 - 前端请求参数MD5加密校验,参数串解密
		
首先引入MD5加密库:=>https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js; 步骤:=>1.请求前对参数进行字典升序排序,排 ...
 - httprunner学习3-extract提取token值参数关联(上个接口返回的token,传给下个接口请求参数)
		
前言 如何将上个接口的返回token,传给下个接口当做请求参数?这是最常见的一个问题了. 解决这个问题其实很简单,我们只需取出token值,设置为一个中间变量a,下个接口传这个变量a就可以了.那么接下 ...
 - python完成数组格式的请求参数的加密计算
		
#输入 '''order_id:31489 join_course[0][join_tel]:13130999882 join_course[0][join_name]:任学雨 join_course ...
 
随机推荐
- 登陆ArcGIS Server Manager时一直显示”请稍后……”
			
登陆Server Manager时一直显示”请稍后……”新建完成ARcGIS ServerSite,设置用户名和密码.但是登陆时却发现一直处于等待状态,如下图: 更换为IE浏览器后发现,已经可以登陆并 ...
 - 【六】php 错误异常处理
			
错误异常处理 概念:代码在try代码块被调用执行,catch代码块捕获异常 异常需要手动抛出 throw new Exception (‘message’,code) throw将出发异常处理机制 在 ...
 - docker 日志分析
			
日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...
 - centos7 下载安装tomcat9
			
需要Java环境 https://www.cnblogs.com/sea-stream/p/10404360.html 官网下载安装包 wget http://archive.apache.org/d ...
 - 华硕N55SF 折腾记
			
家里给老妈用的N55SL是2011年买的.这么多年了,最近一身毛病,最近来回折腾很多次.吐槽记录如下 1不定时花屏.闪屏,然后偶尔硬盘掉盘 (找不到硬盘,开机BIOS里).主要是使用一段时间之后发热, ...
 - Codeforces 801C - Voltage Keepsake
			
C. Voltage Keepsake 题目链接:http://codeforces.com/problemset/problem/801/C time limit per test 2 second ...
 - Unity中sharedMaterials 和 materials
			
sharedMaterials 和 materials: 这两个属性用法是一样的,但是从效率上来说最好用sharedMaterial,它是共享材质,无论如何操作材质的属性(如更换颜色或者更换shade ...
 - 目前用到的一些os.path方法
			
这里主要记录下os.path.join()的用法 目录结构如下 在readconfig.py中进行试验,如下 1.使用os.path.realpath(__file__)获取文件所在目录 import ...
 - 输出图片格式BARTENDER
			
try { BarTender.Application btApp = new BarTender.Application(); BarTe ...
 - 荧光原位杂交技术 RNA-FiSH (fluorescence in situ hybridization)
			
通俗理解:带有荧光标记的DNA探针可以用于检测活体内特定基因的表达情况,活体成像. 荧光原位杂交方法是一种物理图谱绘制方法,使用荧光素标记探针,以检测探针和分裂中期的染色体或分裂间期的染色质的杂交.荧 ...