const CryptoJS = require('crypto-js'); const config = require('../config/config.js'); /** * @param {Object} params URI请求参数 * @returns {string} 32位MD5签名 */ function generateScanaSignature(params) { // 提取参数名并按ASCII码表升序排序 const sortedKeys = Object.keys(params).sort(); // 将排序好的参数名和参数值构造成字符串 let paramStr = ''; for (const key of sortedKeys) { // 确保参数值为字符串类型 const value = String(params[key]); paramStr += key + value; } const finalStr = paramStr + config.scana.secretKey; // 使用MD5算法 const md5Hash = CryptoJS.MD5(finalStr); const signature = md5Hash.toString(CryptoJS.enc.Hex); return signature; } module.exports = { generateScanaSignature };