JS按照排序⽣成Signature签名⼀、具体实现
const _ = require("lodash");
const NodeRSA = require("node-rsa");
const BASE64 = "base64";
const UTF8 = "utf8";
const pkcsSize = 2048;
const pkcsType = "pkcs8";
const key = new NodeRSA({
b: pkcsSize, //可以知道位数
});
// let data = {
/
/  b: [
//    { f: "3", e: "2", d: "1" },
//    { j: "6", i: "5", h: "4" },
//  ],
//  a: "100",
//  c: { k: "10", m: "11" },
// };
// ⽤loadash实现判断逻辑
// let newObj = "";
// //排序的函数
// function objKeySort(arys) {
/
/  //先⽤Object内置类的keys⽅法获取要排序对象的属性名数组,再利⽤Array的sort⽅法进⾏排序
//  if (arys === null) {
//    return;
//  }
//  const newkey = Object.keys(arys).sort();
//  for (let i = 0; i < newkey.length; i++) {
//    const newArrKey = newkey[i];
//    const newArrOne = arys[newkey[i]];
//    //遍历newkey数组
//    if (_.isArray(newArrOne)) {
sort函数 js//      for (let j = 0; j < newArrOne.length; j++) {
/
/        objKeySort(newArrOne[j]);
//      }
//    } else if (_.isPlainObject(newArrOne)) {
//      objKeySort(newArrOne);
//    } else {
//      newObj += [newArrKey] + "=" + newArrOne + "&";
//    }
//  }
//  return newObj.substring(0, newObj.length - 1);
// }
//
var _toString = String;
function toRawType(value) {
return _toString.call(value).slice(8, -1);
}
let newObj = "";
//排序的函数
function objKeySort(arys) {
//先⽤Object内置类的keys⽅法获取要排序对象的属性名数组,再利⽤Array的sort⽅法进⾏排序
if (arys === null) {
return;
}
const newkey = Object.keys(arys).sort();
for (let i = 0; i < newkey.length; i++) {
const newArrKey = newkey[i];
const newArrOne = arys[newkey[i]];
//遍历newkey数组
if (toRawType(newArrOne) === "Array") {
for (let j = 0; j < newArrOne.length; j++) {
objKeySort(newArrOne[j]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。