UNPKG

typed-wx-api

Version:
47 lines 1.33 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WxJsCrypto = void 0; const crypto_1 = __importDefault(require("crypto")); /** * @internal */ class WxJsCrypto { static createNonceStr() { return Math.random().toString(36).substr(2, 15); } static createTimestamp() { return new Date().getTime() / 1000 + ''; } /* * 排序查询字符串 */ static raw(args) { let keys = Object.keys(args); keys = keys.sort(); const newArgs = {}; keys.forEach(function (key) { newArgs[key.toLowerCase()] = args[key]; }); let string = ''; for (let k in newArgs) { string += '&' + k + '=' + newArgs[k]; } return string.substr(1); } /* * 签名算法 * * @param {Object} ret 需要签名的对象,注:需要先排序好 */ static sign(ret) { const string = WxJsCrypto.raw(ret); const shaSum = crypto_1.default.createHash('sha1'); shaSum.update(string); return shaSum.digest('hex'); } } exports.WxJsCrypto = WxJsCrypto; //# sourceMappingURL=crypto_js.js.map