UNPKG

zwdd

Version:
45 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sign = exports.createNonce = void 0; const crypto_1 = require("crypto"); const getRandom = (length) => { let value = ''; for (let i = 0; i < length; i++) { value += Math.floor(Math.random() * 10); } return value; }; const createNonce = () => { return `${Date.now()}${getRandom(4)}`; }; exports.createNonce = createNonce; const serializeParams = (input) => { return Object.keys(input) .sort() .map(key => { const value = input[key]; if (Array.isArray(value)) { return value.sort().map(v => { return `${key}=${v}`; }).join('&'); } return `${key}=${value}`; }) .join('&'); }; const sign = (params) => { const data = [ params.method.toUpperCase(), params.timestamp, params.nonce, params.url, ]; if (params.params) { data.push(serializeParams(params.params)); } const crypto = (0, crypto_1.createHmac)('sha256', params.appSecret); crypto.update(data.join('\n')); return crypto.digest('base64'); }; exports.sign = sign; //# sourceMappingURL=crypto.js.map