Js生成接口请求参数签名加密

js生成接口请求参数签名加密

定义规则:将所有参数字段按首字母排序, 拼接成key1 = value1 & key2 = value2的格式,再在末尾拼接上key = appSecret, 再做MD5加密生成sign,方法如下:

function getSign(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(("&")));
    }
}

function paramsStrSort(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!

GitHub地址

原文地址:https://www.cnblogs.com/jone-chen/p/8143285.html

时间: 2024-10-07 10:33:54

Js生成接口请求参数签名加密的相关文章

jmeter通过BeanShell 脚本,实现对http请求参数的加密

jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的自动化接口测试框架.它的好还在于它是纯JAVA开发的,因此,它可以更好的跟JAVA对接,通过引入自己封装的jar文件,可以方便的实现对jmeter各种个性化需求的功能的拓展,下面以一个实际例子来说明jmeter怎么引入自己开发的java工具类来实现对http请求参数的加密处理. 在此之前,我们假设有

python接口自动化-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)

参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了.最常见的案例就是网站的登录案例,很多网站的登录并不仅仅只传username和psw两个参数,往往有其它的动态参数.有时候还需要带上cookies参数,如JSESSIONID 登录参数 首先分析下目标网站[学信网:https://account.chsi.com.cn/passport/login]的登录接口请求参数.先随便输入账号和密码,使用fiddler工

go中处理各种请求方式以及处理接口请求参数

话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) //这个文件是对于net/http包的解读 func httpGet() { //func Get(url string) (resp *Response, err error) resp, err :=

jmeter完成md5加密的接口请求参数

百度搜索:小强测试品牌 挨踢脱口秀,将技术娱乐化,碎片系统化,尽在荔枝FM(http://www.lizhi.fm/200893) <小强软件测试疯狂讲义-性能及自动化>出版啦,各大网店均可购买 jmeter完成接口测试不难,基本的使用可以观看我的视频:http://edu.51cto.com/course/course_id-2324.html 但有时候我们请求的参数可能需要加密,比如登录接口中的密码可能需要经过md5加密这时候怎么处理呢? 第一种方法: 这种方法比较简单,jmeter内置了

httprunner学习3-extract提取token值参数关联(上个接口返回的token,传给下个接口请求参数)

前言 如何将上个接口的返回token,传给下个接口当做请求参数?这是最常见的一个问题了. 解决这个问题其实很简单,我们只需取出token值,设置为一个中间变量a,下个接口传这个变量a就可以了.那么接下来就是解决两个问题: 如何取出token值? 如何参数关联? 场景案例 我现在有一个登陆接口A,登陆成功后返回一个token值.有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问 A接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v

python完成数组格式的请求参数的加密计算

#输入 '''order_id:31489 join_course[0][join_tel]:13130999882 join_course[0][join_name]:任学雨 join_course[0][join_card_afterfour]:043X join_course[0][join_school]:铭博教育咨询 join_course[1][join_tel]:13130999883 join_course[1][join_name]:任学雨 join_course[1][joi

从零开始设计SOA框架(三):请求参数的加密方式

第二章中说明请求参数有哪些,主要是公共参数和业务参数,服务端需要对参数进行效验,已验证请求参数的合法性 参数效验前先解释下以下参数: 1.参数键值对:包括公共参数.业务参数 1.公共参数:按键值对拼串,如time=123123app_id=sdf34234method=user.buyer.get等 2.系统参数: 1.如果是get请求则添加到公共参数后面 2.如果是post请求则需要服务端从form中获取 2.内部key:双方约定的秘钥,一般为app_secret 3.sign:键值对+内部k

vue写请求接口--请求参数的变量要在return里面声明

//谨记return里面是返回所有声明的变量的名字,数组以及对象等等 export default { data () { return { //所有的变量都是写在data 的return里面的,主要错误点在于请求参数的变量要在这里声明: imgGroup: { user: require('../static/images/icon/user-ava.png'), payment: require('../static/images/icon/wait-payment.png'), deliv

js获取url请求参数

function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } // 调用方法 alert(GetQueryString("