333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
{"version":3,"sources":["../browser/src/util/RandomGenerator.ts"],"names":[],"mappings":"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","file":"RandomGenerator.js","sourcesContent":["export class RandomGenerator {\n\n    /**\n     *  discuss at: http://locutus.io/php/sha1/\n     * original by: Webtoolkit.info (http://www.webtoolkit.info/)\n     * improved by: Michael White (http://getsprink.com)\n     * improved by: Kevin van Zonneveld (http://kvz.io)\n     *    input by: Brett Zamir (http://brett-zamir.me)\n     *      note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then\n     *      note 1: hashed. If available, we'd recommend using Node's native crypto modules directly\n     *      note 1: in a steaming fashion for faster and more efficient hashing\n     *   example 1: sha1('Kevin van Zonneveld')\n     *   returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'\n     */\n    static sha1(str: string) {\n\n        let _rotLeft = function(n: any, s: any) {\n            let t4 = (n << s) | (n >>> (32 - s));\n            return t4;\n        };\n\n        let _cvtHex = function(val: any) {\n            let str = \"\";\n            let i;\n            let v;\n\n            for (i = 7; i >= 0; i--) {\n                v = (val >>> (i * 4)) & 0x0f;\n                str += v.toString(16);\n            }\n            return str;\n        };\n\n        let blockstart;\n        let i, j;\n        let W = new Array(80);\n        let H0 = 0x67452301;\n        let H1 = 0xEFCDAB89;\n        let H2 = 0x98BADCFE;\n        let H3 = 0x10325476;\n        let H4 = 0xC3D2E1F0;\n        let A, B, C, D, E;\n        let temp;\n\n        // utf8_encode\n        str = /*unescape*/(encodeURIComponent(str));\n        let strLen = str.length;\n\n        let wordArray = [];\n        for (i = 0; i < strLen - 3; i += 4) {\n            j = str.charCodeAt(i) << 24 |\n                str.charCodeAt(i + 1) << 16 |\n                str.charCodeAt(i + 2) << 8 |\n                str.charCodeAt(i + 3);\n            wordArray.push(j);\n        }\n\n        switch (strLen % 4) {\n            case 0:\n                i = 0x080000000;\n                break;\n            case 1:\n                i = str.charCodeAt(strLen - 1) << 24 | 0x0800000;\n                break;\n            case 2:\n                i = str.charCodeAt(strLen - 2) << 24 | str.charCodeAt(strLen - 1) << 16 | 0x08000;\n                break;\n            case 3:\n                i = str.charCodeAt(strLen - 3) << 24 |\n                    str.charCodeAt(strLen - 2) << 16 |\n                    str.charCodeAt(strLen - 1) <<\n                    8 | 0x80;\n                break;\n        }\n\n        wordArray.push(i);\n\n        while ((wordArray.length % 16) !== 14) {\n            wordArray.push(0);\n        }\n\n        wordArray.push(strLen >>> 29);\n        wordArray.push((strLen << 3) & 0x0ffffffff);\n\n        for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) {\n            for (i = 0; i < 16; i++) {\n                W[i] = wordArray[blockstart + i];\n            }\n            for (i = 16; i <= 79; i++) {\n                W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n            }\n\n            A = H0;\n            B = H1;\n            C = H2;\n            D = H3;\n            E = H4;\n\n            for (i = 0; i <= 19; i++) {\n                temp = (_rotLeft(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;\n                E = D;\n                D = C;\n                C = _rotLeft(B, 30);\n                B = A;\n                A = temp;\n            }\n\n            for (i = 20; i <= 39; i++) {\n                temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;\n                E = D;\n                D = C;\n                C = _rotLeft(B, 30);\n                B = A;\n                A = temp;\n            }\n\n            for (i = 40; i <= 59; i++) {\n                temp = (_rotLeft(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;\n                E = D;\n                D = C;\n                C = _rotLeft(B, 30);\n                B = A;\n                A = temp;\n            }\n\n            for (i = 60; i <= 79; i++) {\n                temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;\n                E = D;\n                D = C;\n                C = _rotLeft(B, 30);\n                B = A;\n                A = temp;\n            }\n\n            H0 = (H0 + A) & 0x0ffffffff;\n            H1 = (H1 + B) & 0x0ffffffff;\n            H2 = (H2 + C) & 0x0ffffffff;\n            H3 = (H3 + D) & 0x0ffffffff;\n            H4 = (H4 + E) & 0x0ffffffff;\n        }\n\n        temp = _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4);\n        return temp.toLowerCase();\n    }\n\n    /**\n     * RFC4122 compliant UUID v4 generator.\n     */\n    static uuid4(): string {\n        return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) =>  {\n            const r = Math.random() * 16 | 0, v = c === \"x\" ? r : (r & 0x3 | 0x8);\n            return v.toString(16);\n        });\n    }\n\n}"],"sourceRoot":".."}