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小时内删除。
发表评论