'use strict'; const crypto = require('crypto'); /** 空值不参与,字典序,MD5 小写 */ function buildSign(params, secretKey) { const keys = Object.keys(params).filter((k) => k !== 'Sign').sort(); const parts = []; for (const k of keys) { const v = params[k]; if (v === null || v === undefined) continue; const s = String(v); if (s === '') continue; parts.push(`${k}=${s}`); } const raw = parts.join('&') + `&SecretKey=${secretKey}`; return crypto.createHash('md5').update(raw, 'utf8').digest('hex'); } module.exports = { buildSign };