Search by

aliservice / think-apisign

aliservice

There is no license information available for the latest version (1.0.0) of this package.

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Package info

gitee.com/aliservice/think-apisign

pkg:composer/aliservice/think-apisign

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

1.0.0 2023-01-29 03:14 UTC

This package is auto-updated.

Last update: 2025-08-29 02:53:48 UTC


README

Postman


const salt = 'default'

function randomString(len) {
  len = len || 32;
  var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';    /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
  var maxPos = $chars.length;
  var pwd = '';
  for (i = 0; i < len; i++) {
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return pwd;
}

function ksort(o){
    let sorted = {}
    let keys = Object.keys(o)
    keys.sort()
    keys.forEach((key)=>{
        if(typeof o[key] != 'object' && o[key] && o[key] !== '0'){
            sorted[key] =  o[key]
        }
    })
    return sorted
}

function makeSign(request_data,timestamp,randStr){
    data = ksort(request_data)
    let string = ""
    Object.keys(data).forEach((key)=>{
        string += key + '=' + data[key] + '&'
    })
    string += salt + timestamp + randStr
    return CryptoJS.MD5(string).toString().toLocaleUpperCase()
}

let request_data = pm.request.method.toLocaleUpperCase() === 'POST' ? JSON.parse(pm.request.body.raw) : pm.request.url.query.toObject()

const timestamp = Date.parse(new Date()).toString().substring(0,10)
const randStr = randomString(10)
const sign = makeSign(request_data,timestamp,randStr);
pm.request.headers.upsert({key:"timestamp",value:timestamp})
pm.request.headers.upsert({key:"randStr",value:randStr})
pm.request.headers.upsert({key:"sign",value:sign})