# think-apisign **Repository Path**: aliservice/think-apisign ## Basic Information - **Project Name**: think-apisign - **Description**: think-apisign - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-27 - **Last Updated**: 2023-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 接口验签 ### Postman ```javascript 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}) ```