"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CryptoUtils = void 0;
/**
 *
 * @date 2023-02-16 16:30:18
 * @author 鲜伟坚
 */
var crypto = require("crypto");
var CryptoUtils = /** @class */ (function () {
    function CryptoUtils() {
    }
    /**
    * MD5
    */
    CryptoUtils.md5 = function (text) {
        return crypto
            .createHash('md5')
            .update(text)
            .digest('hex');
    };
    /**
     * 统一平台签名算法
     */
    CryptoUtils.getTYApiSing = function (p) {
        var str = Object.keys(p).sort().filter(function (k) {
            // 排除 key 和 appId
            if (['key', 'appId', 'appsecret'].includes(k)) {
                return false;
            }
            // 保留数字类型的字段
            if (typeof (p[k]) === 'number') {
                return true;
            }
            // 排除空字符串的字段
            if (typeof (p[k]) === 'string') {
                return !!p[k];
            }
            return false;
        }).map(function (k) { return k + "=" + p[k]; }).join('&');
        str += "&" + p['appsecret'];
        return CryptoUtils.md5(str).toUpperCase();
    };
    return CryptoUtils;
}());
exports.CryptoUtils = CryptoUtils;
//# sourceMappingURL=CryptoUtils.js.map