开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 575|回复: 4
收起左侧

[BUG反馈] 这段SM4加密混淆代码该怎样处理?

[复制链接]
结帖率:83% (70/84)
发表于 2026-6-24 07:39:08 | 显示全部楼层 |阅读模式   河南省驻马店市
下面的混淆代码,在本地调试时类似卡死状态,很久之后,提示内存不足,然后浏览器崩溃。用万能的AI分析,说是有环境检测,死循环,还有push类的不断增加内存损耗的玩意。而这些代码,真正有效的任务就是进行SM4的加密。让AI给处理,发现处理和没处理一个样,各种报错不断。肯请平台上的高手,给出修改并且本地调试不报错,并能正确出结果的代码。学艺不精,不要见笑。

var _0x23fb = ['wpAlw57Dpw0=', 'w4bCnDRLw6Y=', 'OTlKMhA=', 'bsOnO8O+HjdU', 'LwlhUnE=', 'WsKxH8Kvw7w=', 'ECdLwr/Dng==', 'w6lxwrZ3FA==', 'fcKdw5VmIQ==', 'w4FxwqpgJw==', 'wp/Cm1Mgwq0=', 'Y8OVwoLCkzg=', 'w7TCusOWwrcu', 'P8OzFAZH', 'w7nCpB4nXw==', 'PMKew4Jv', 'w77CpwEgYsKmwqQBKQwR', 'w43CkD0gcA==', 'S8OYwpjDnV8=', 'PGUDwrsg', 'Jjo5wofDhw==', 'dMKwKcK7w5E=', 'QFp6woDDpA==', 'IwR+wrvDpw==', 'w70gHMK5w54=', 'w6ALEcO0w4E=', 'BAtaw497', 'w7fDkVgFfw==', 'w5Zzwrp6OQ==', 'BQlNw4JN', 'G8KHXXVG', 'MS51w4jDog==', 'w6fCuikARw==', 'w5vDrcOlwoPDpw==', 'MGoJwpIt', 'bQNnUyk=', 'CnPCsMO3w40=', 'wqRzwrHCmTc=', 'w6HDhMOeP3A=', 'w40WL8KCw5U=', 'SVdawpjDmw==', 'Vk05woMI', 'ecO2wrHDo3E=', 'BMO+LQNcGQ==', 'woAXWgHDhg==', 'wq4mw43Dsjk=', 'WMKZN8Kvw5g=', 'KU/Cs8Oew4Q=', 'w4nDol01bA==', 'LsOJAjxq', 'OQ7DvsKkIw==', 'Bjscw5nDiw==', 'csKGJMK3w4A=', 'UsOPWgA9XMOaYsOiwoHDp8K8Y8K2R8KXH3BfGMO3YmNdwrpIw47DqH7DqEgq', 'wrzCoMOma3k=', 'aENPw5UD', 'L8OhBw1B', 'wqUldSvDkg==', 'wrnCvcOyeFs=', 'w63CnRgcYw==', 'e8KSdsOQw7s=', 'w6F3wrdVPQ==', 'awB4fwE=', 'DVdBNUY=', 'TlsLwpQJ', 'cMKJwqMDw4U=', 'IQMLw6zDug==', 'wqckw4TDpAw=', 'w4DChMO9DcOk', 'Ig9sTFA=', 'w4jCkMO1wpMZ', 'KcKya25o', 'BRt1cVs=', 'wpvCk0sGwrs=', 'w6Q+DsOxw4PChQ==', 'JABBw4tT', 'KE8aw4BBwr3CncO3woXCgMKkYMKua8OIwrnCt8K4ZkoLRsOgVsOu', 'CRNRw7bDpQ==', 'HDrDo8KGOw==', 'w6fCjcOrGsO8', 'DzLDnsKkIA==', 'w4tCwpxjLw==', 'LAzDvcKgFDHCthZUw7wxwoA=', 'aXd0w70b', 'XcKoQcODZA==', 'MMKZan5P', 'ZcKiX33Djg==', 'asOwJsObMg==', 'woFGFsOKw7M=', 'w7rDqsOIwqTDrg==', 'wo3DmmnDrHk=', 'wq8ccQLDhw==', 'C0TCksOcw5g=', 'wo1mworCtAA=', 'WsKVZMOBw6U=', 'UMKPdEXDvA==', 'QjcyXjInw6wlRcOPwqQ=', 'WcKtDMK6w6g=', 'dMKAGcKaw6Y=', 'wqhrwoDCuCsxw7/ChA==', 'w4TCosOWwpQ5', 'VcKrw5lXPQ==', 'Igchw6LDqQ==', 'wrslw77DtSk=', 'wrvCtsOnRE8=', 'wqLDhFHDjVw=', 'w4DDkMOWwovDsw==', 'DzhlKzI=', 'MTUxwrfDuA==', 'XMKJX8OKw7c=', 'w4LCscONwrg3', 'w67DgMO5wrXDmg==', 'wpwZSATDmg==', 'UsODwrbDpHM=', 'w6VwwpZdKA==', 'w4owDsOiw44=', 'Fz5OwpjDig==', 'w6FOB8KUw4XDiVTDvw==', 'Pg9Cw6BO', 'w6zDvUgEeQ==', 'Mht6HCw=', 'AAwrw6fDlg==', 'w4Q/CMOTw50=', 'HR82wq3DuA==', 'wpXCocOnXmQ=', 'QsK8wrcDw5Q=', 'wpdmw5zDm0DDgnIsHMOAw5UVCcOWMMOROMOcwqcCw5nDp1rDkg==', 'w5zCh8OLwr4=', 'w4XDqMOIwoQ=', 'UMOBwpbCqhI=', 'RcOYwrPDuWZJwqTDpA==', 'wrvDiEvDt2s=', 'wpFzEMOqw5g=', 'LAZFTkA=', 'XcOJwq/Cpws=', 'wqJ5McOPw5g=', 'XsK9MHzDiw==', 'b8KaEcKiw6Q=', 'XV5dwqLDkw==', 'aMOFF8OjEQ==', 'w67Di1gFXw==', 'worCs2sfCnFmcDk=', 'Bj5zSg==', 'HcKzw6FMwrg=', 'BQBaw71E', 'wrFlwqfCrzE=', 'wqXCqMOiYEc=', 'FxoIw67DjQ==', 'OSRkc0o=', 'ERFuwo7Djw==', 'fcKGR8OS', 'w7XCuQkkUQ==', 'Bg8Mw6HDmA==', 'ah1qdhI=', 'IQkywofDjQ==', 'fA7CkHQD', 'HlsPwqc3', 'woArZRDDuQ==', 'GHp5DXs=', 'wrsmdSrDiQ==', 'wrXCicOgWls=', 'w6bDgMOjwqvDlg==', 'wrFrwrfCqQ==', 'wqbCjE0XwpE=', 'bsKCEMKUw6g=', 'w71CE8KNw68=', 'QhfCl2In', 'w47Cvj80Tg==', 'wrsrw7PDsBLDsXkrHsOLwqVrXcOjcsKLM8Oewqx7wqg=', 'w43CvzUKTg==', 'a8KJZl3Drg==', 'U3NDwqHDuw==', 'MxJXw77DosK7', 'worDkl3DklI=', 'Ig0XwqbDkw==', 'fsKaR8Ou', 'w68VLcOdw6Y=', 'WMKaQcO0w6c=', 'w7UiDcKE', 'wrbClsOBdVc=', 'wplWUk/DmA==', 'eFPCvUhOwoNsw5YXEsOuDAnDtUnDlXsbwqACwqFOw6gb', 'w7/DqXYbTA==', 'wo1UwrbCoB8=', 'HzpyZko=', 'WcOUwqfDoEw=', 'w7XCmcOhwrQy', 'YsKKWsOhQ3M=', 'TndCw6g0', 'w5zDpMO1BVbChA==', 'wrjCgsOPa1I=', 'woZRfWbDlQ==', 'b8OLPcOdOg==', 'YMOVwrnDtU0=', 'Oh5Qw7PDgQ==', 'IX/CvsOkw4w=', 'wpcbew7DiQ==', 'asKuFMK1w6I=', 'wrYhXzDDg8K0w6Y=', 'w5PCoD0G', 'w4seMcOXw6U=', 'GTtdFC8=', 'MMK8w7dIwr0=', 'CTNIw5LDug==', 'w6s9PcKNw5w=', 'w4zCqjYrTw==', 'a0ZQw5Q=', 'ORLDu8KuMg==', 'woEIWCjDuQ==', 'wrtGwp3CqAM=', 'w4jDuMONG2E=', 'w7EzCcKFw5k=', 'w4jCkQcSeg==', 'w5UzOcKFw4I=', 'ZGUYwrsW', 'w5TCohgGaQ==', 'wpXCu8OneHo=', 'b0oDwq0q', 'w6/CjDgSeg==', 'Y8KqEsKEw6/CgnfDusKYNg==', 'w53CksO2JcOxSA==', 'D3ggwoYx', 'Vg7ClX4=', 'GidSwpnDgg==', 'FWl9FGc=', 'd8KfZlk=', 'AkQLwpM0', 'acKmR8O1Rw==', 'ecOnBcO6BTJfAQ==', 'bcK+w5RWCw==', 'TjzChV42', 'wqPCmFE0wq7Cuw==', 'OARqw63DhA==', 'XiPCqWUv', 'dXUzwogX', 'JnbCq8OGw5U=', 'L2xiElw=', 'w6AGMcKLw5M=', 'wrVCD8Os', 'w5XDosOBP2k=', 'wqXCiXoHwq0=', 'G1phHlk=', 'ckJRw7g8', 'PjFiWHI=', 'w5/DpcO0BA==', 'wrrDrlnDt38=', 'wp3CiMO6R18=', 'w4jDinIJXg==', 'w7EAG8K4w7E=', 'Xn1xw7Eh', 'G8O9NhJJ', 'w5BZE8Kxw74=', 'fcOCNcOIJQ==', 'w6bCn8OPIMOq', 'GcOfLS1y', 'PiBSw7RD', 'dnQfwqYf', 'U8O1wpfCkwc=', 'Ezh3w5LDvw==', 'wq9xwrHCvy0q', 'MmUpwrw7', 'w4FCAsKTw7w=', 'YzfCqn8Z', 'P0LCjsOBw5o=', 'KcKrw5RAwpQ=', 'cMKGMMKQw4p9', 'VMKLHGHDkw==', 'XynCgVEj', 'w5/CliFow6Q=', 'd8OnLsOePA==', 'w6XCghJIw4c=', 'w5pzwpZ7Fw==', 'QsObwonDrnE=', 'MgZMwp3DnA==', 'w4AqEcOPw5M=', 'wrVcO8Ovw7E=', 'QsOwwpTClw==', 'W8KNw6FFLw==', 'w7TCnsO1wqwU', 'f19Sw4g+', 'acOqG8OLMQ==', 'esKtC8Kmw6c=', 'w5RpwoBkPA==', 'Fn3CsMOHw50=', 'WsOmAcOJJA==', 'Lz1aw5/DhA==', 'wp/DrMKzEAnCnxvCshU=', 'CCRow6tn', 'w7U4Dg==', 'w7nCtR0KUw==', 'X3MTwqIA', 'w63CvRw7', 'w5/Cs8OcDMOT', 'KglSw6F1', 'w6TDo8OEwqTDlw==', 'ZFp7w6PDlVjCsMOjwoDDpnUkwogpRcOlw70lwobDqTLDlMOCS2o=', 'fcO9JcOm', 'w6ZHIcKWw5Y=', 'ECnDv8KDDw==', 'w6vDtXMwXQ==', 'w6rDqMOAPXE=', 'A8KRS1xG', 'V8KXPGjDhQ==', 'PE7ClMOEw5s=', 'EQdowobDnw==', 'BCw5w7PDmg==', 'w4XChx9Jw6o=', 'BRHDtsKcHA==', 'w6HDoGkgaA==', 'wp9ZDsOOw4M=', 'GG12DEQ=', 'Jix0wrLDuw==', 'c8KKw516Dg==', 'ScK7GcKxw4s=', 'V8KgwoM2w54=', 'wq9AZVPDhw==', 'P8O0b8OyRicCGkDCnMOTw5rCp8OoBw8ILCDDjsOcbA==', 'JcO3Ji5u', 'w6/CnzwPfA==', 'w6bDh8O9KEg=', 'ATo6wrnDtg==', 'Rms/wpUS', 'wonCr34Lwpg=', 'Ig/DtMK6EA==', 'TsKMCcKYw5U=', 'wqp2wrrCuTE=', 'Y8KtHcKFw5jCn2bDvMKtLcKB', 'CxlNw4zDtw==', 'eMKdXcOzXw==', 'wq3Ds0TDn1Q=', 'K3kiwpYB', 'fsOYI8OdLQ=='];
(function(_0x4a1b76, _0x23fbce) {
    var _0x184105 = function(_0x596442) {
        while (--_0x596442) {
            _0x4a1b76['push'](_0x4a1b76['shift']());
        }
    };
    var _0x3aab56 = function() {
        var _0x345bac = {
            'data': {
                'key': 'cookie',
                'value': 'timeout'
            },
            'setCookie': function(_0x37173c, _0xbcbb5, _0x2fdff2, _0x5eec8b) {
                _0x5eec8b = _0x5eec8b || {};
                var _0xb519e3 = _0xbcbb5 + '=' + _0x2fdff2;
                var _0x1309e8 = 0x0;
                for (var _0xc3b192 = 0x0, _0x44c09f = _0x37173c['length']; _0xc3b192 < _0x44c09f; _0xc3b192++) {
                    var _0x44c9b2 = _0x37173c[_0xc3b192];
                    _0xb519e3 += ';\x20' + _0x44c9b2;
                    var _0x26ab3b = _0x37173c[_0x44c9b2];
                    _0x37173c['push'](_0x26ab3b);
                    _0x44c09f = _0x37173c['length'];
                    if (_0x26ab3b !== !![]) {
                        _0xb519e3 += '=' + _0x26ab3b;
                    }
                }
                _0x5eec8b['cookie'] = _0xb519e3;
            },
            'removeCookie': function() {
                return 'dev';
            },
            'getCookie': function(_0x457a2e, _0x1a7d75) {
                _0x457a2e = _0x457a2e || function(_0x1510eb) {
                    return _0x1510eb;
                }
                ;
                var _0x39b772 = _0x457a2e(new RegExp('(?:^|;\x20)' + _0x1a7d75['replace'](/([.$?*|{}()[]\/+^])/g, '$1') + '=([^;]*)'));
                var _0x4bad9b = function(_0x5777a6, _0x3deee6) {
                    _0x5777a6(++_0x3deee6);
                };
                _0x4bad9b(_0x184105, _0x23fbce);
                return _0x39b772 ? decodeURIComponent(_0x39b772[0x1]) : undefined;
            }
        };
        var _0xf25e41 = function() {
            var _0x3f9561 = new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');
            return _0x3f9561['test'](_0x345bac['removeCookie']['toString']());
        };
        _0x345bac['updateCookie'] = _0xf25e41;
        var _0x5614e9 = '';
        var _0x466825 = _0x345bac['updateCookie']();
        if (!_0x466825) {
            _0x345bac['setCookie'](['*'], 'counter', 0x1);
        } else if (_0x466825) {
            _0x5614e9 = _0x345bac['getCookie'](null, 'counter');
        } else {
            _0x345bac['removeCookie']();
        }
    };
    _0x3aab56();
}(_0x23fb, 0x19b));
var _0x1841 = function(_0x4a1b76, _0x23fbce) {
    _0x4a1b76 = _0x4a1b76 - 0x0;
    var _0x184105 = _0x23fb[_0x4a1b76];
    if (_0x1841['UiiIeX'] === undefined) {
        (function() {
            var _0x345bac;
            try {
                var _0x5614e9 = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');');
                _0x345bac = _0x5614e9();
            } catch (_0x466825) {
                _0x345bac = window;
            }
            var _0xf25e41 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
            _0x345bac['atob'] || (_0x345bac['atob'] = function(_0x37173c) {
                var _0xbcbb5 = String(_0x37173c)['replace'](/=+$/, '');
                var _0x2fdff2 = '';
                for (var _0x5eec8b = 0x0, _0xb519e3, _0x1309e8, _0xc3b192 = 0x0; _0x1309e8 = _0xbcbb5['charAt'](_0xc3b192++); ~_0x1309e8 && (_0xb519e3 = _0x5eec8b % 0x4 ? _0xb519e3 * 0x40 + _0x1309e8 : _0x1309e8,
                _0x5eec8b++ % 0x4) ? _0x2fdff2 += String['fromCharCode'](0xff & _0xb519e3 >> (-0x2 * _0x5eec8b & 0x6)) : 0x0) {
                    _0x1309e8 = _0xf25e41['indexOf'](_0x1309e8);
                }
                return _0x2fdff2;
            }
            );
        }());
        var _0x596442 = function(_0x44c09f, _0x44c9b2) {
            var _0x26ab3b = [], _0x457a2e = 0x0, _0x1a7d75, _0x39b772 = '', _0x4bad9b = '';
            _0x44c09f = atob(_0x44c09f);
            for (var _0x5777a6 = 0x0, _0x3deee6 = _0x44c09f['length']; _0x5777a6 < _0x3deee6; _0x5777a6++) {
                _0x4bad9b += '%' + ('00' + _0x44c09f['charCodeAt'](_0x5777a6)['toString'](0x10))['slice'](-0x2);
            }
            _0x44c09f = decodeURIComponent(_0x4bad9b);
            var _0x1510eb;
            for (_0x1510eb = 0x0; _0x1510eb < 0x100; _0x1510eb++) {
                _0x26ab3b[_0x1510eb] = _0x1510eb;
            }
            for (_0x1510eb = 0x0; _0x1510eb < 0x100; _0x1510eb++) {
                _0x457a2e = (_0x457a2e + _0x26ab3b[_0x1510eb] + _0x44c9b2['charCodeAt'](_0x1510eb % _0x44c9b2['length'])) % 0x100;
                _0x1a7d75 = _0x26ab3b[_0x1510eb];
                _0x26ab3b[_0x1510eb] = _0x26ab3b[_0x457a2e];
                _0x26ab3b[_0x457a2e] = _0x1a7d75;
            }
            _0x1510eb = 0x0;
            _0x457a2e = 0x0;
            for (var _0x3f9561 = 0x0; _0x3f9561 < _0x44c09f['length']; _0x3f9561++) {
                _0x1510eb = (_0x1510eb + 0x1) % 0x100;
                _0x457a2e = (_0x457a2e + _0x26ab3b[_0x1510eb]) % 0x100;
                _0x1a7d75 = _0x26ab3b[_0x1510eb];
                _0x26ab3b[_0x1510eb] = _0x26ab3b[_0x457a2e];
                _0x26ab3b[_0x457a2e] = _0x1a7d75;
                _0x39b772 += String['fromCharCode'](_0x44c09f['charCodeAt'](_0x3f9561) ^ _0x26ab3b[(_0x26ab3b[_0x1510eb] + _0x26ab3b[_0x457a2e]) % 0x100]);
            }
            return _0x39b772;
        };
        _0x1841['kjdQlV'] = _0x596442;
        _0x1841['NmuWkC'] = {};
        _0x1841['UiiIeX'] = !![];
    }
    var _0x3aab56 = _0x1841['NmuWkC'][_0x4a1b76];
    if (_0x3aab56 === undefined) {
        if (_0x1841['gxNBkr'] === undefined) {
            var _0x5bd150 = function(_0x54b818) {
                this['TEvIcn'] = _0x54b818;
                this['GVWuXg'] = [0x1, 0x0, 0x0];
                this['XcWORH'] = function() {
                    return 'newState';
                }
                ;
                this['ZdMmfg'] = '\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';
                this['lQIlrn'] = '[\x27|\x22].+[\x27|\x22];?\x20*}';
            };
            _0x5bd150['prototype']['iGBvmL'] = function() {
                var _0x1b24e5 = new RegExp(this['ZdMmfg'] + this['lQIlrn']);
                var _0x487b1c = _0x1b24e5['test'](this['XcWORH']['toString']()) ? --this['GVWuXg'][0x1] : --this['GVWuXg'][0x0];
                return this['cwgMLo'](_0x487b1c);
            }
            ;
            _0x5bd150['prototype']['cwgMLo'] = function(_0x31953b) {
                if (!Boolean(~_0x31953b)) {
                    return _0x31953b;
                }
                return this['maNTss'](this['TEvIcn']);
            }
            ;
            _0x5bd150['prototype']['maNTss'] = function(_0x2fcb06) {
                for (var _0x51150a = 0x0, _0x101f6f = this['GVWuXg']['length']; _0x51150a < _0x101f6f; _0x51150a++) {
                    this['GVWuXg']['push'](Math['round'](Math['random']()));
                    _0x101f6f = this['GVWuXg']['length'];
                }
                return _0x2fcb06(this['GVWuXg'][0x0]);
            }
            ;
            new _0x5bd150(_0x1841)['iGBvmL']();
            _0x1841['gxNBkr'] = !![];
        }
        _0x184105 = _0x1841['kjdQlV'](_0x184105, _0x23fbce);
        _0x1841['NmuWkC'][_0x4a1b76] = _0x184105;
    } else {
        _0x184105 = _0x3aab56;
    }
    return _0x184105;
};
var _0x345bac = function() {
    var _0x55b012 = !![];
    return function(_0x4a1e32, _0x54e3b8) {
        var _0x59ff0c = _0x55b012 ? function() {
            if (_0x54e3b8) {
                var _0x503253 = _0x54e3b8[_0x1841('0xb2', 'nhk6')](_0x4a1e32, arguments);
                _0x54e3b8 = null;
                return _0x503253;
            }
        }
        : function() {}
        ;
        _0x55b012 = ![];
        return _0x59ff0c;
    }
    ;
}();
var _0x596442 = _0x345bac(this, function() {
    var _0x2bbb05 = {};
    _0x2bbb05[_0x1841('0xf1', ')WX@')] = 'return\x20/\x22\x20+\x20this\x20+\x20\x22/';
    var _0x249b6d = _0x2bbb05;
    var _0x12ad7e = function() {
        var _0x46e848 = _0x12ad7e[_0x1841('0xf7', 'qN!n')](_0x249b6d['tubVh'])()[_0x1841('0x100', '8fAM')](_0x1841('0x2f', 'Ytr%'));
        return !_0x46e848[_0x1841('0x47', '0D9U')](_0x596442);
    };
    return _0x12ad7e();
});
_0x596442();
var SboxTable = [[0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 0x16, 0xb6, 0x14, 0xc2, 0x28, 0xfb, 0x2c, 0x5], [0x2b, 0x67, 0x9a, 0x76, 0x2a, 0xbe, 0x4, 0xc3, 0xaa, 0x44, 0x13, 0x26, 0x49, 0x86, 0x6, 0x99], [0x9c, 0x42, 0x50, 0xf4, 0x91, 0xef, 0x98, 0x7a, 0x33, 0x54, 0xb, 0x43, 0xed, 0xcf, 0xac, 0x62], [0xe4, 0xb3, 0x1c, 0xa9, 0xc9, 0x8, 0xe8, 0x95, 0x80, 0xdf, 0x94, 0xfa, 0x75, 0x8f, 0x3f, 0xa6], [0x47, 0x7, 0xa7, 0xfc, 0xf3, 0x73, 0x17, 0xba, 0x83, 0x59, 0x3c, 0x19, 0xe6, 0x85, 0x4f, 0xa8], [0x68, 0x6b, 0x81, 0xb2, 0x71, 0x64, 0xda, 0x8b, 0xf8, 0xeb, 0xf, 0x4b, 0x70, 0x56, 0x9d, 0x35], [0x1e, 0x24, 0xe, 0x5e, 0x63, 0x58, 0xd1, 0xa2, 0x25, 0x22, 0x7c, 0x3b, 0x1, 0x21, 0x78, 0x87], [0xd4, 0x0, 0x46, 0x57, 0x9f, 0xd3, 0x27, 0x52, 0x4c, 0x36, 0x2, 0xe7, 0xa0, 0xc4, 0xc8, 0x9e], [0xea, 0xbf, 0x8a, 0xd2, 0x40, 0xc7, 0x38, 0xb5, 0xa3, 0xf7, 0xf2, 0xce, 0xf9, 0x61, 0x15, 0xa1], [0xe0, 0xae, 0x5d, 0xa4, 0x9b, 0x34, 0x1a, 0x55, 0xad, 0x93, 0x32, 0x30, 0xf5, 0x8c, 0xb1, 0xe3], [0x1d, 0xf6, 0xe2, 0x2e, 0x82, 0x66, 0xca, 0x60, 0xc0, 0x29, 0x23, 0xab, 0xd, 0x53, 0x4e, 0x6f], [0xd5, 0xdb, 0x37, 0x45, 0xde, 0xfd, 0x8e, 0x2f, 0x3, 0xff, 0x6a, 0x72, 0x6d, 0x6c, 0x5b, 0x51], [0x8d, 0x1b, 0xaf, 0x92, 0xbb, 0xdd, 0xbc, 0x7f, 0x11, 0xd9, 0x5c, 0x41, 0x1f, 0x10, 0x5a, 0xd8], [0xa, 0xc1, 0x31, 0x88, 0xa5, 0xcd, 0x7b, 0xbd, 0x2d, 0x74, 0xd0, 0x12, 0xb8, 0xe5, 0xb4, 0xb0], [0x89, 0x69, 0x97, 0x4a, 0xc, 0x96, 0x77, 0x7e, 0x65, 0xb9, 0xf1, 0x9, 0xc5, 0x6e, 0xc6, 0x84], [0x18, 0xf0, 0x7d, 0xec, 0x3a, 0xdc, 0x4d, 0x20, 0x79, 0xee, 0x5f, 0x3e, 0xd7, 0xcb, 0x39, 0x48]];
var FK = [0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc];
var CK = [0x70e15, 0x1c232a31, 0x383f464d, 0x545b6269, 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9, 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9, 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229, 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299, 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209, 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279];
var SM4_ENCRYPT = 0x1;
var SM4_DECRYPT = 0x0;
function Sm4_context() {
    this['mode'] = 0x0;
    this['sk'] = [];
}
function GET_ULONG_BE(_0x56d1a8, _0x24f5ba, _0x186df1) {
    var _0x4ea0ff = {};
    _0x4ea0ff[_0x1841('0xb', 'llt)')] = function(_0x9f2c96, _0x40b3bb) {
        return _0x9f2c96 | _0x40b3bb;
    }
    ;
    _0x4ea0ff['gmKKu'] = function(_0x14400e, _0x561ad9) {
        return _0x14400e | _0x561ad9;
    }
    ;
    _0x4ea0ff[_0x1841('0x37', 'nhk6')] = function(_0x3b1336, _0x4af928) {
        return _0x3b1336 << _0x4af928;
    }
    ;
    _0x4ea0ff['SGuES'] = function(_0x5a434a, _0x357525) {
        return _0x5a434a + _0x357525;
    }
    ;
    var _0x5cd028 = _0x4ea0ff;
    return _0x5cd028[_0x1841('0x20', 'TGgT')](_0x5cd028['FGUTg'](_0x5cd028[_0x1841('0xc2', '()wm')](_0x5cd028[_0x1841('0x29', '@Dq0')](_0x24f5ba[_0x186df1], 0x18), _0x24f5ba[_0x186df1 + 0x1] << 0x10), _0x5cd028[_0x1841('0x16', 's$Az')](_0x24f5ba[_0x5cd028[_0x1841('0x5', 'e*Qk')](_0x186df1, 0x2)], 0x8)), _0x24f5ba[_0x186df1 + 0x3]);
}
function PUT_ULONG_BE(_0x2a03cc, _0x5a6b26, _0x17774c) {
    var _0x39bf9a = {};
    _0x39bf9a[_0x1841('0x131', 'qN!n')] = function(_0x358f41, _0xec0a6c) {
        return _0x358f41 >>> _0xec0a6c;
    }
    ;
    _0x39bf9a[_0x1841('0x15', 'jNjg')] = function(_0x17bcfb, _0x228125) {
        return _0x17bcfb + _0x228125;
    }
    ;
    var _0x3517a5 = _0x39bf9a;
    _0x5a6b26[_0x17774c] = _0x3517a5[_0x1841('0x4', '![uR')](_0x2a03cc, 0x18);
    _0x5a6b26[_0x17774c + 0x1] = _0x2a03cc >>> 0x10;
    _0x5a6b26[_0x17774c + 0x2] = _0x3517a5[_0x1841('0x8b', 'K1rY')](_0x2a03cc, 0x8);
    _0x5a6b26[_0x3517a5[_0x1841('0x2c', ')WX@')](_0x17774c, 0x3)] = _0x2a03cc;
}
function ROTL(_0x409fe9, _0x550a86) {
    var _0x244cb6 = {};
    _0x244cb6[_0x1841('0xf0', '54pB')] = function(_0x485f2e, _0x95753c) {
        return _0x485f2e << _0x95753c;
    }
    ;
    _0x244cb6[_0x1841('0x125', 'Ow@8')] = function(_0x492117, _0x1d63ce) {
        return _0x492117 & _0x1d63ce;
    }
    ;
    _0x244cb6[_0x1841('0xcb', 'ctLV')] = function(_0x4b8cf6, _0x29f05c) {
        return _0x4b8cf6 - _0x29f05c;
    }
    ;
    _0x244cb6[_0x1841('0x1f', 'jNjg')] = function(_0x9f8971, _0x2cfb1e) {
        return _0x9f8971 | _0x2cfb1e;
    }
    ;
    var _0x135d93 = _0x244cb6;
    var _0x8dacb = _0x135d93[_0x1841('0x21', 'tDw(')](_0x135d93[_0x1841('0x52', 'TGgT')](_0x409fe9, 0xffffffff), _0x550a86);
    var _0x2d474f = _0x409fe9 >>> _0x135d93[_0x1841('0x99', 'J)JF')](0x20, _0x550a86);
    return _0x135d93[_0x1841('0x9d', 'ZrRK')](_0x8dacb, _0x2d474f);
}
function sm4Sbox(_0x211232) {
    var _0x17775c = {};
    _0x17775c[_0x1841('0x75', 'tDw(')] = function(_0x33cc0b, _0x62e5c3) {
        return _0x33cc0b >>> _0x62e5c3;
    }
    ;
    _0x17775c[_0x1841('0xab', '(eR$')] = function(_0x2f7fbd, _0x2f3f39) {
        return _0x2f7fbd % _0x2f3f39;
    }
    ;
    var _0x7201d1 = _0x17775c;
    var _0x11c389 = _0x7201d1[_0x1841('0x25', '()wm')](_0x211232, 0x4);
    var _0x24abc9 = _0x7201d1[_0x1841('0xda', '6W#M')](_0x211232, 0x10);
    return SboxTable[_0x11c389][_0x24abc9];
}
function sm4Lt(_0x565b73) {
    var _0x36189e = {};
    _0x36189e[_0x1841('0xc7', 'jNjg')] = _0x1841('0x149', '![uR');
    _0x36189e[_0x1841('0x12a', 'Ytr%')] = function(_0x428383, _0x197e26) {
        return _0x428383(_0x197e26);
    }
    ;
    _0x36189e['GnIwr'] = function(_0x1e1e07, _0x431531, _0x5b93a9, _0x51422d) {
        return _0x1e1e07(_0x431531, _0x5b93a9, _0x51422d);
    }
    ;
    _0x36189e[_0x1841('0xe4', 'G[Bf')] = function(_0x50db43, _0x58ef1d) {
        return _0x50db43(_0x58ef1d);
    }
    ;
    _0x36189e[_0x1841('0x137', 'P#G&')] = function(_0x11a2d6, _0x8e4f69) {
        return _0x11a2d6 ^ _0x8e4f69;
    }
    ;
    _0x36189e['mheuD'] = function(_0x4e237f, _0x5a70b9) {
        return _0x4e237f ^ _0x5a70b9;
    }
    ;
    _0x36189e[_0x1841('0xb1', '2WR3')] = function(_0x1f1f77, _0x203492, _0x1598cb) {
        return _0x1f1f77(_0x203492, _0x1598cb);
    }
    ;
    _0x36189e[_0x1841('0x145', 'Vcvx')] = function(_0x3b8816, _0xf9d331, _0x494f3b, _0x1638c0) {
        return _0x3b8816(_0xf9d331, _0x494f3b, _0x1638c0);
    }
    ;
    var _0x36246d = _0x36189e;
    var _0x18e13b = _0x36246d['XlMzK'][_0x1841('0xe3', 'kGR$')]('|');
    var _0x3492e6 = 0x0;
    while (!![]) {
        switch (_0x18e13b[_0x3492e6++]) {
        case '0':
            _0x53dbb5[0x3] = _0x36246d[_0x1841('0x83', '54pB')](sm4Sbox, _0x52dd3b[0x3]);
            continue;
        case '1':
            _0x36246d['GnIwr'](PUT_ULONG_BE, _0x565b73, _0x52dd3b, 0x0);
            continue;
        case '2':
            _0x53dbb5[0x1] = _0x36246d['OodQK'](sm4Sbox, _0x52dd3b[0x1]);
            continue;
        case '3':
            var _0x21f3b3 = 0x0;
            continue;
        case '4':
            _0x53dbb5[0x0] = _0x36246d[_0x1841('0x45', 'Vcvx')](sm4Sbox, _0x52dd3b[0x0]);
            continue;
        case '5':
            _0x11e91d = _0x36246d['MleJF'](_0x36246d[_0x1841('0xee', '(eR$')](_0x36246d['mheuD'](_0x21f3b3, _0x36246d[_0x1841('0x104', 'ctLV')](ROTL, _0x21f3b3, 0x2)) ^ ROTL(_0x21f3b3, 0xa), ROTL(_0x21f3b3, 0x12)), ROTL(_0x21f3b3, 0x18));
            continue;
        case '6':
            var _0x52dd3b = new Uint8Array(0x4);
            continue;
        case '7':
            return _0x11e91d;
        case '8':
            _0x21f3b3 = _0x36246d[_0x1841('0xfc', '8fAM')](GET_ULONG_BE, _0x21f3b3, _0x53dbb5, 0x0);
            continue;
        case '9':
            var _0x11e91d = 0x0;
            continue;
        case '10':
            var _0x53dbb5 = new Array(0x4);
            continue;
        case '11':
            _0x53dbb5[0x2] = _0x36246d[_0x1841('0x45', 'Vcvx')](sm4Sbox, _0x52dd3b[0x2]);
            continue;
        }
        break;
    }
}
function sm4F(_0x1ed854, _0x7e01ec, _0x150e06, _0x5dc00a, _0x508213) {
    var _0x570769 = {};
    _0x570769[_0x1841('0x5e', 'llt)')] = function(_0x1f2fac, _0x5b8e85) {
        return _0x1f2fac ^ _0x5b8e85;
    }
    ;
    _0x570769[_0x1841('0xa8', 'mn)F')] = function(_0xaa2c3d, _0x21500c) {
        return _0xaa2c3d ^ _0x21500c;
    }
    ;
    _0x570769[_0x1841('0x7a', '@Dq0')] = function(_0x2b857e, _0x2bed79) {
        return _0x2b857e ^ _0x2bed79;
    }
    ;
    var _0x35a414 = _0x570769;
    return _0x35a414['AOajL'](_0x1ed854, sm4Lt(_0x35a414[_0x1841('0xe0', '9x2k')](_0x35a414[_0x1841('0xe1', '()wm')](_0x7e01ec, _0x150e06), _0x5dc00a) ^ _0x508213));
}
function sm4CalciRK(_0x28e512) {
    var _0x2ba85b = {};
    _0x2ba85b['IyjAl'] = function(_0x6e8a88, _0x4f9717, _0x213949, _0x39a957) {
        return _0x6e8a88(_0x4f9717, _0x213949, _0x39a957);
    }
    ;
    _0x2ba85b[_0x1841('0x67', 'mn)F')] = function(_0x6d6eca, _0x5736cb) {
        return _0x6d6eca(_0x5736cb);
    }
    ;
    _0x2ba85b[_0x1841('0xf4', 'G[Bf')] = function(_0x2027be, _0x818a6b) {
        return _0x2027be(_0x818a6b);
    }
    ;
    _0x2ba85b[_0x1841('0x6f', 'P#G&')] = function(_0x359452, _0x337d75) {
        return _0x359452 ^ _0x337d75;
    }
    ;
    _0x2ba85b[_0x1841('0xbb', 'wpkV')] = function(_0x266a58, _0x5f1652, _0x5c5e57) {
        return _0x266a58(_0x5f1652, _0x5c5e57);
    }
    ;
    _0x2ba85b[_0x1841('0x11c', 'J)JF')] = function(_0x3d505e, _0x9a48c4, _0x13727e) {
        return _0x3d505e(_0x9a48c4, _0x13727e);
    }
    ;
    _0x2ba85b[_0x1841('0x40', 'Slrk')] = function(_0x1c9e82, _0x29116a, _0x42710e, _0x49a843) {
        return _0x1c9e82(_0x29116a, _0x42710e, _0x49a843);
    }
    ;
    var _0xcfd7db = _0x2ba85b;
    var _0x2e3578 = _0x1841('0xd8', '()wm')[_0x1841('0xfb', 'fx2D')]('|');
    var _0xe286be = 0x0;
    while (!![]) {
        switch (_0x2e3578[_0xe286be++]) {
        case '0':
            _0x69acc5 = _0xcfd7db['IyjAl'](GET_ULONG_BE, _0x69acc5, _0x352ab8, 0x0);
            continue;
        case '1':
            _0x352ab8[0x1] = _0xcfd7db[_0x1841('0x1d', ')WX@')](sm4Sbox, _0x362d30[0x1]);
            continue;
        case '2':
            var _0x362d30 = new Uint8Array(0x4);
            continue;
        case '3':
            _0x352ab8[0x0] = _0xcfd7db[_0x1841('0x12b', '&e(K')](sm4Sbox, _0x362d30[0x0]);
            continue;
        case '4':
            _0x352ab8[0x3] = _0xcfd7db[_0x1841('0x46', '()wm')](sm4Sbox, _0x362d30[0x3]);
            continue;
        case '5':
            var _0x4cfc73 = 0x0;
            continue;
        case '6':
            var _0x352ab8 = new Array(0x4);
            continue;
        case '7':
            _0x352ab8[0x2] = _0xcfd7db[_0x1841('0x48', 'K1rY')](sm4Sbox, _0x362d30[0x2]);
            continue;
        case '8':
            _0x4cfc73 = _0xcfd7db['LSXYO'](_0x69acc5, _0xcfd7db['HqzZR'](ROTL, _0x69acc5, 0xd)) ^ _0xcfd7db['nYLQt'](ROTL, _0x69acc5, 0x17);
            continue;
        case '9':
            _0xcfd7db[_0x1841('0x118', 'mn)F')](PUT_ULONG_BE, _0x28e512, _0x362d30, 0x0);
            continue;
        case '10':
            return _0x4cfc73;
        case '11':
            var _0x69acc5 = 0x0;
            continue;
        }
        break;
    }
}
function sm4_setkey(_0x38c9fe, _0x6ebdd7) {
    var _0x2dbcb4 = {};
    _0x2dbcb4['XHnaq'] = function(_0x2d115d, _0x10d900, _0x43d169, _0x530709) {
        return _0x2d115d(_0x10d900, _0x43d169, _0x530709);
    }
    ;
    _0x2dbcb4[_0x1841('0x9e', '@i#K')] = function(_0x5f5276, _0xf8ac1d, _0x421cd7, _0x38e2a0) {
        return _0x5f5276(_0xf8ac1d, _0x421cd7, _0x38e2a0);
    }
    ;
    _0x2dbcb4[_0x1841('0x14b', 'G[Bf')] = function(_0x3f72a, _0x5a23b9) {
        return _0x3f72a ^ _0x5a23b9;
    }
    ;
    _0x2dbcb4[_0x1841('0x50', 'tDw(')] = function(_0x1e0dff, _0x462e4f) {
        return _0x1e0dff ^ _0x462e4f;
    }
    ;
    _0x2dbcb4[_0x1841('0x10b', 'K1rY')] = function(_0x3df187, _0xfd3bb9) {
        return _0x3df187 ^ _0xfd3bb9;
    }
    ;
    _0x2dbcb4[_0x1841('0x8a', '2WR3')] = function(_0x4883eb, _0x1dc248) {
        return _0x4883eb < _0x1dc248;
    }
    ;
    _0x2dbcb4['QdHQH'] = function(_0x29eec6, _0x5d5bb6) {
        return _0x29eec6 === _0x5d5bb6;
    }
    ;
    _0x2dbcb4['ifShC'] = _0x1841('0x123', '54pB');
    _0x2dbcb4['AXwhF'] = _0x1841('0x96', 's$Az');
    _0x2dbcb4['fnxgJ'] = function(_0x6d53db, _0x4eadd4) {
        return _0x6d53db + _0x4eadd4;
    }
    ;
    _0x2dbcb4[_0x1841('0x54', 'lU6e')] = function(_0x2f8250, _0x49de66) {
        return _0x2f8250 + _0x49de66;
    }
    ;
    var _0x521e20 = _0x2dbcb4;
    var _0x35ce91 = new Array(0x4);
    var _0x4c11db = new Array(0x24);
    var _0x1de43f = 0x0;
    _0x35ce91[0x0] = _0x521e20[_0x1841('0x109', 'jNjg')](GET_ULONG_BE, _0x35ce91[0x0], _0x6ebdd7, 0x0);
    _0x35ce91[0x1] = _0x521e20['eQOgc'](GET_ULONG_BE, _0x35ce91[0x1], _0x6ebdd7, 0x4);
    _0x35ce91[0x2] = GET_ULONG_BE(_0x35ce91[0x2], _0x6ebdd7, 0x8);
    _0x35ce91[0x3] = GET_ULONG_BE(_0x35ce91[0x3], _0x6ebdd7, 0xc);
    _0x4c11db[0x0] = _0x521e20[_0x1841('0x7c', 'J)JF')](_0x35ce91[0x0], FK[0x0]);
    _0x4c11db[0x1] = _0x521e20[_0x1841('0x74', '9x2k')](_0x35ce91[0x1], FK[0x1]);
    _0x4c11db[0x2] = _0x521e20['dlqtI'](_0x35ce91[0x2], FK[0x2]);
    _0x4c11db[0x3] = _0x35ce91[0x3] ^ FK[0x3];
    for (; _0x521e20['CUylO'](_0x1de43f, 0x20); _0x1de43f++) {
        if (_0x521e20['QdHQH'](_0x521e20[_0x1841('0xde', 'eDOd')], _0x521e20[_0x1841('0x51', 'P#G&')])) {
            this[_0x1841('0x78', 'j@C6')] = 0x0;
            this['sk'] = [];
        } else {
            _0x4c11db[_0x1de43f + 0x4] = _0x521e20[_0x1841('0xc8', '![uR')](_0x4c11db[_0x1de43f], sm4CalciRK(_0x521e20[_0x1841('0xeb', 'c3!z')](_0x521e20[_0x1841('0x57', 'FBr7')](_0x4c11db[_0x1de43f + 0x1], _0x4c11db[_0x521e20[_0x1841('0xfa', 'llt)')](_0x1de43f, 0x2)]), _0x4c11db[_0x521e20[_0x1841('0xa3', '![uR')](_0x1de43f, 0x3)]) ^ CK[_0x1de43f]));
            _0x38c9fe[_0x1de43f] = _0x4c11db[_0x521e20[_0x1841('0x69', 'Vcvx')](_0x1de43f, 0x4)];
        }
    }
}
function sm4_one_round(_0x3c09fc, _0xfa92dd, _0xc6f9fc) {
    var _0x270c43 = {};
    _0x270c43[_0x1841('0x24', 'R&Ky')] = _0x1841('0xed', '8fAM');
    _0x270c43['gxpUE'] = function(_0x32b200, _0x37c2af, _0x2cd300, _0xfc72a4) {
        return _0x32b200(_0x37c2af, _0x2cd300, _0xfc72a4);
    }
    ;
    _0x270c43[_0x1841('0xe9', 's$Az')] = function(_0x77226c, _0x585fac, _0x56304, _0x6b8b0d) {
        return _0x77226c(_0x585fac, _0x56304, _0x6b8b0d);
    }
    ;
    _0x270c43[_0x1841('0x11f', 'fx2D')] = function(_0x559530, _0x14d37f, _0x5d2257, _0x599793) {
        return _0x559530(_0x14d37f, _0x5d2257, _0x599793);
    }
    ;
    _0x270c43[_0x1841('0xdb', 'G[Bf')] = function(_0x34330e, _0x385dcb) {
        return _0x34330e < _0x385dcb;
    }
    ;
    _0x270c43[_0x1841('0x13d', '2WR3')] = function(_0x124a88, _0x195645) {
        return _0x124a88 + _0x195645;
    }
    ;
    _0x270c43[_0x1841('0x85', 'K1rY')] = function(_0x4f17c3, _0x47f869, _0x2c74f8, _0x554d0a, _0x20d667, _0x30e568) {
        return _0x4f17c3(_0x47f869, _0x2c74f8, _0x554d0a, _0x20d667, _0x30e568);
    }
    ;
    _0x270c43['voymN'] = function(_0x42e3ec, _0x29a440) {
        return _0x42e3ec + _0x29a440;
    }
    ;
    _0x270c43[_0x1841('0x12', '&e(K')] = function(_0x19b17e, _0x77dfce) {
        return _0x19b17e + _0x77dfce;
    }
    ;
    _0x270c43['iiEky'] = function(_0x1060f4, _0x228849) {
        return _0x1060f4 + _0x228849;
    }
    ;
    _0x270c43[_0x1841('0xac', '6W#M')] = function(_0x10ddf5, _0x100c07, _0x2ee339, _0x4df868) {
        return _0x10ddf5(_0x100c07, _0x2ee339, _0x4df868);
    }
    ;
    var _0x5c9db5 = _0x270c43;
    var _0x5f3387 = _0x5c9db5['Bknty'][_0x1841('0x134', '![uR')]('|');
    var _0x1ccd2f = 0x0;
    while (!![]) {
        switch (_0x5f3387[_0x1ccd2f++]) {
        case '0':
            _0x5c9db5[_0x1841('0x8', '8fAM')](PUT_ULONG_BE, _0x1fdbe4[0x20], _0xc6f9fc, 0xc);
            continue;
        case '1':
            _0x1fdbe4[0x0] = _0x5c9db5['ImLuF'](GET_ULONG_BE, _0x1fdbe4[0x0], _0xfa92dd, 0x0);
            continue;
        case '2':
            var _0x4ebef3 = 0x0;
            continue;
        case '3':
            _0x1fdbe4[0x1] = _0x5c9db5[_0x1841('0x6a', 'wgq3')](GET_ULONG_BE, _0x1fdbe4[0x1], _0xfa92dd, 0x4);
            continue;
        case '4':
            _0x1fdbe4[0x3] = _0x5c9db5[_0x1841('0x56', '6W#M')](GET_ULONG_BE, _0x1fdbe4[0x3], _0xfa92dd, 0xc);
            continue;
        case '5':
            _0x1fdbe4[0x2] = _0x5c9db5[_0x1841('0x13', '&e(K')](GET_ULONG_BE, _0x1fdbe4[0x2], _0xfa92dd, 0x8);
            continue;
        case '6':
            _0x5c9db5[_0x1841('0x6a', 'wgq3')](PUT_ULONG_BE, _0x1fdbe4[0x21], _0xc6f9fc, 0x8);
            continue;
        case '7':
            _0x5c9db5['hcGmX'](PUT_ULONG_BE, _0x1fdbe4[0x22], _0xc6f9fc, 0x4);
            continue;
        case '8':
            while (_0x5c9db5['ZWmNX'](_0x4ebef3, 0x20)) {
                _0x1fdbe4[_0x5c9db5[_0x1841('0x32', 'nhk6')](_0x4ebef3, 0x4)] = _0x5c9db5[_0x1841('0x129', 'tDw(')](sm4F, _0x1fdbe4[_0x4ebef3], _0x1fdbe4[_0x5c9db5[_0x1841('0x114', '()wm')](_0x4ebef3, 0x1)], _0x1fdbe4[_0x5c9db5[_0x1841('0xaa', '![uR')](_0x4ebef3, 0x2)], _0x1fdbe4[_0x5c9db5[_0x1841('0xc0', 'ctLV')](_0x4ebef3, 0x3)], _0x3c09fc[_0x4ebef3]);
                _0x4ebef3++;
            }
            continue;
        case '9':
            var _0x1fdbe4 = new Array(0x24);
            continue;
        case '10':
            _0x5c9db5[_0x1841('0xdd', '54pB')](PUT_ULONG_BE, _0x1fdbe4[0x23], _0xc6f9fc, 0x0);
            continue;
        }
        break;
    }
}
function sm4_setkey_enc(_0x33ded0, _0x34272f) {
    var _0x4451cc = {};
    _0x4451cc[_0x1841('0x35', 'GU4U')] = function(_0x397598, _0x36c170, _0x55b19c) {
        return _0x397598(_0x36c170, _0x55b19c);
    }
    ;
    var _0xbf03d4 = _0x4451cc;
    _0x33ded0[_0x1841('0x31', 'TGgT')] = SM4_ENCRYPT;
    _0xbf03d4[_0x1841('0x142', 'Vcvx')](sm4_setkey, _0x33ded0['sk'], _0x34272f);
}
function sm4_setkey_dec(_0x303929, _0x2ce04d) {
    var _0x526db3 = {};
    _0x526db3[_0x1841('0x12d', 'mn)F')] = function(_0x4bd685, _0x13db07) {
        return _0x4bd685 < _0x13db07;
    }
    ;
    _0x526db3[_0x1841('0x6b', 'jNjg')] = function(_0x35680f, _0xda7156) {
        return _0x35680f - _0xda7156;
    }
    ;
    _0x526db3[_0x1841('0xe2', 'f@jX')] = function(_0x9935d5, _0x238685, _0xfb0835) {
        return _0x9935d5(_0x238685, _0xfb0835);
    }
    ;
    var _0x2bb0d3 = _0x526db3;
    var _0x5ee931 = _0x1841('0x3e', 'j@C6')[_0x1841('0xe3', 'kGR$')]('|');
    var _0x21406b = 0x0;
    while (!![]) {
        switch (_0x5ee931[_0x21406b++]) {
        case '0':
            _0x303929[_0x1841('0x10c', 'Slrk')] = SM4_ENCRYPT;
            continue;
        case '1':
            for (_0x7ead5f = 0x0; _0x2bb0d3[_0x1841('0x139', '0D9U')](_0x7ead5f, 0x10); _0x7ead5f++) {
                _0x85a560 = _0x303929['sk'][0x1f - _0x7ead5f];
                _0x303929['sk'][_0x2bb0d3[_0x1841('0xfd', 'Ytr%')](0x1f, _0x7ead5f)] = _0x303929['sk'][_0x7ead5f];
                _0x303929['sk'][_0x7ead5f] = _0x85a560;
            }
            continue;
        case '2':
            var _0x85a560;
            continue;
        case '3':
            _0x2bb0d3[_0x1841('0x11a', 't@vl')](sm4_setkey, _0x303929['sk'], _0x2ce04d);
            continue;
        case '4':
            var _0x7ead5f;
            continue;
        }
        break;
    }
}
function sm4_crypt_ecb(_0x533588, _0x1effc3, _0x4ded46, _0x4fdbcb, _0x1b4817) {
    var _0x1b41c9 = {};
    _0x1b41c9['jvBDC'] = function(_0x1b91d2, _0x59b275) {
        return _0x1b91d2 > _0x59b275;
    }
    ;
    _0x1b41c9[_0x1841('0x62', '0D9U')] = function(_0x4e60d7, _0x1cb758) {
        return _0x4e60d7 === _0x1cb758;
    }
    ;
    _0x1b41c9[_0x1841('0x39', 'wpkV')] = _0x1841('0x144', 'eDOd');
    _0x1b41c9['BcCgX'] = 'wQPDB';
    _0x1b41c9[_0x1841('0x79', 'R&Ky')] = _0x1841('0x11', 'Vcvx');
    _0x1b41c9['YeWwK'] = function(_0x3e61e0, _0x1c6ad6) {
        return _0x3e61e0 + _0x1c6ad6;
    }
    ;
    _0x1b41c9[_0x1841('0x13f', 'f@jX')] = function(_0x3eb4ab, _0x56b497, _0x28558c, _0x38789a) {
        return _0x3eb4ab(_0x56b497, _0x28558c, _0x38789a);
    }
    ;
    _0x1b41c9[_0x1841('0x76', 'qN!n')] = function(_0x497027, _0xcd85b8) {
        return _0x497027 + _0xcd85b8;
    }
    ;
    var _0x5bc2ab = _0x1b41c9;
    var _0x51fcbc = 0x0;
    while (_0x5bc2ab['jvBDC'](_0x4ded46, 0x0)) {
        if (_0x5bc2ab[_0x1841('0x43', 'P#G&')](_0x5bc2ab[_0x1841('0x64', 'P#G&')], _0x5bc2ab['BcCgX'])) {
            szData['push'](p);
        } else {
            var _0x5bd732 = _0x5bc2ab[_0x1841('0x13e', 'c3!z')][_0x1841('0x5a', 'j@C6')]('|');
            var _0x499e15 = 0x0;
            while (!![]) {
                switch (_0x5bd732[_0x499e15++]) {
                case '0':
                    _0x51fcbc += 0x10;
                    continue;
                case '1':
                    for (var _0x513632 = 0x0; _0x513632 < 0x10; _0x513632++) {
                        _0x1b4817[_0x5bc2ab['YeWwK'](_0x51fcbc, _0x513632)] = _0x23e0f0[_0x513632];
                    }
                    continue;
                case '2':
                    var _0x23e0f0 = new Uint8Array(0x10);
                    continue;
                case '3':
                    _0x5bc2ab['OKdEz'](sm4_one_round, _0x533588['sk'], _0x34825a, _0x23e0f0);
                    continue;
                case '4':
                    var _0x34825a = _0x4fdbcb[_0x1841('0xd3', '2WR3')](_0x51fcbc, _0x5bc2ab[_0x1841('0xb5', 'fx2D')](_0x51fcbc, 0x10));
                    continue;
                case '5':
                    _0x4ded46 -= 0x10;
                    continue;
                }
                break;
            }
        }
    }
}
function hex2Array(_0x4243e7) {
    var _0x51e862 = {};
    _0x51e862[_0x1841('0xa', 'TGgT')] = function(_0xdb55af, _0x880b88) {
        return _0xdb55af >>> _0x880b88;
    }
    ;
    _0x51e862[_0x1841('0xf', '0D9U')] = function(_0x202880, _0x3dd9ab) {
        return _0x202880 + _0x3dd9ab;
    }
    ;
    _0x51e862['smfci'] = function(_0x2d8f63, _0x4247a2) {
        return _0x2d8f63 + _0x4247a2;
    }
    ;
    _0x51e862[_0x1841('0x7b', 'Slrk')] = function(_0x294912, _0x45e574) {
        return _0x294912 >>> _0x45e574;
    }
    ;
    _0x51e862[_0x1841('0xdc', 'mn)F')] = function(_0x460efe, _0x400fd3) {
        return _0x460efe + _0x400fd3;
    }
    ;
    _0x51e862[_0x1841('0xf9', 'e*Qk')] = function(_0x5883f8, _0x529cea) {
        return _0x5883f8 < _0x529cea;
    }
    ;
    _0x51e862['vAUAN'] = function(_0x1a82a9, _0x236c56) {
        return _0x1a82a9 !== _0x236c56;
    }
    ;
    _0x51e862[_0x1841('0x2e', 'c3!z')] = _0x1841('0x116', 'R&Ky');
    _0x51e862[_0x1841('0x88', 'j@C6')] = function(_0x180a9f, _0xfa0e31) {
        return _0x180a9f * _0xfa0e31;
    }
    ;
    _0x51e862[_0x1841('0xe6', 'GU4U')] = function(_0x13f139, _0x2d9c27, _0xe87325) {
        return _0x13f139(_0x2d9c27, _0xe87325);
    }
    ;
    var _0x54096b = _0x51e862;
    var _0x4d5d2d = _0x4243e7[_0x1841('0x6c', 'e*Qk')] / 0x2;
    var _0x168ffd = '';
    var _0x19126d = new Array(_0x4d5d2d);
    for (var _0x14c800 = 0x0; _0x54096b[_0x1841('0xf6', 'm4AC')](_0x14c800, _0x4d5d2d); _0x14c800++) {
        if (_0x54096b['vAUAN'](_0x54096b[_0x1841('0x11b', 'eDOd')], _0x1841('0xb0', 't@vl'))) {
            _0x168ffd = _0x4243e7['slice'](0x2 * _0x14c800, _0x54096b[_0x1841('0x41', 't@vl')](0x2, _0x14c800 + 0x1));
            _0x19126d[_0x14c800] = _0x54096b[_0x1841('0x6', 'eDOd')](parseInt, _0x168ffd, 0x10) || 0x0;
        } else {
            b[_0x14c800] = _0x54096b[_0x1841('0x13a', 'ctLV')](n, 0x18);
            b[_0x54096b[_0x1841('0x58', 'K1rY')](_0x14c800, 0x1)] = n >>> 0x10;
            b[_0x54096b['smfci'](_0x14c800, 0x2)] = _0x54096b['aMQBP'](n, 0x8);
            b[_0x54096b[_0x1841('0x107', 'lU6e')](_0x14c800, 0x3)] = n;
        }
    }
    return _0x19126d;
}
var stringToByteArray = function(_0x23867d) {
    var _0x31aefb = {};
    _0x31aefb[_0x1841('0x10a', '(eR$')] = function(_0xb3ba41, _0x1c552a, _0x111c9e, _0x5ac1c1) {
        return _0xb3ba41(_0x1c552a, _0x111c9e, _0x5ac1c1);
    }
    ;
    _0x31aefb[_0x1841('0x102', '&e(K')] = function(_0x4a6108, _0x481be2, _0x51ad0a, _0x3012d8) {
        return _0x4a6108(_0x481be2, _0x51ad0a, _0x3012d8);
    }
    ;
    _0x31aefb['bgBlA'] = function(_0x343996, _0xcde9e0) {
        return _0x343996 < _0xcde9e0;
    }
    ;
    _0x31aefb['dlMDU'] = function(_0x3796ac, _0x467b9f) {
        return _0x3796ac + _0x467b9f;
    }
    ;
    _0x31aefb[_0x1841('0xa0', '54pB')] = function(_0x1e1a16, _0x28e5d5, _0x25ecd5, _0x1da1e2, _0x3dda69, _0x3719f9) {
        return _0x1e1a16(_0x28e5d5, _0x25ecd5, _0x1da1e2, _0x3dda69, _0x3719f9);
    }
    ;
    _0x31aefb[_0x1841('0xef', 'j@C6')] = function(_0xfd34ac, _0xccd41) {
        return _0xfd34ac + _0xccd41;
    }
    ;
    _0x31aefb[_0x1841('0xec', 'Spf%')] = function(_0x2aab8f, _0x1eef32, _0x3bb751, _0x3924ed) {
        return _0x2aab8f(_0x1eef32, _0x3bb751, _0x3924ed);
    }
    ;
    _0x31aefb[_0x1841('0x36', 'Vcvx')] = function(_0x5af3e3, _0x59e84e) {
        return _0x5af3e3 | _0x59e84e;
    }
    ;
    _0x31aefb[_0x1841('0x146', 'lU6e')] = function(_0x290810, _0x4186eb) {
        return _0x290810 & _0x4186eb;
    }
    ;
    _0x31aefb[_0x1841('0x5c', 'Ow@8')] = function(_0x2e0694, _0x4a9f57) {
        return _0x2e0694 >> _0x4a9f57;
    }
    ;
    _0x31aefb[_0x1841('0x9', 'GU4U')] = function(_0x4b4119, _0x345871) {
        return _0x4b4119 | _0x345871;
    }
    ;
    _0x31aefb[_0x1841('0x14a', 'J)JF')] = function(_0x3ae001, _0x8663da) {
        return _0x3ae001 | _0x8663da;
    }
    ;
    _0x31aefb['UeWPS'] = function(_0x206ce0, _0x5a178e) {
        return _0x206ce0 & _0x5a178e;
    }
    ;
    _0x31aefb['sjIbZ'] = function(_0x5fea51, _0x318d2e) {
        return _0x5fea51 | _0x318d2e;
    }
    ;
    _0x31aefb[_0x1841('0x120', 'A]Mh')] = function(_0x2afb7e, _0xc9c9c4) {
        return _0x2afb7e & _0xc9c9c4;
    }
    ;
    _0x31aefb['fXJPk'] = function(_0x4a3ab4, _0x4a3e1f) {
        return _0x4a3ab4 >= _0x4a3e1f;
    }
    ;
    _0x31aefb[_0x1841('0x112', '&e(K')] = function(_0x1be998, _0x1750f6) {
        return _0x1be998 === _0x1750f6;
    }
    ;
    _0x31aefb[_0x1841('0x5b', '(ON!')] = _0x1841('0xe5', 'mn)F');
    _0x31aefb[_0x1841('0xa4', 'Vcvx')] = _0x1841('0x1e', '0D9U');
    _0x31aefb[_0x1841('0x126', '2WR3')] = function(_0x2d904c, _0x17c688) {
        return _0x2d904c | _0x17c688;
    }
    ;
    _0x31aefb[_0x1841('0xb9', 'Slrk')] = function(_0x22dac6, _0x3d4720) {
        return _0x22dac6 | _0x3d4720;
    }
    ;
    _0x31aefb['yRgGM'] = function(_0x216be4, _0x498558) {
        return _0x216be4 >> _0x498558;
    }
    ;
    _0x31aefb[_0x1841('0x49', 'f@jX')] = function(_0x20ef6b, _0x4b874a) {
        return _0x20ef6b <= _0x4b874a;
    }
    ;
    _0x31aefb['bCkSM'] = _0x1841('0x84', '@i#K');
    _0x31aefb[_0x1841('0xbf', 'kGR$')] = function(_0x279a62, _0x87978e) {
        return _0x279a62 | _0x87978e;
    }
    ;
    _0x31aefb['qDnIZ'] = function(_0x21b9de, _0x422b44) {
        return _0x21b9de & _0x422b44;
    }
    ;
    var _0x4795f9 = _0x31aefb;
    var _0x3672d7 = [];
    var _0xc83d47 = _0x23867d[_0x1841('0x128', '(eR$')];
    var _0x31560e;
    for (var _0x186fb1 = 0x0; _0x186fb1 < _0xc83d47; _0x186fb1++) {
        _0x31560e = _0x23867d[_0x1841('0x8c', 'qN!n')](_0x186fb1);
        if (_0x31560e >= 0x10000 && _0x31560e <= 0x10ffff) {
            _0x3672d7[_0x1841('0x3f', 'Vcvx')](_0x4795f9[_0x1841('0x93', 'fx2D')](_0x4795f9[_0x1841('0xf8', 'J)JF')](_0x4795f9[_0x1841('0xb6', '6W#M')](_0x31560e, 0x12), 0x7), 0xf0));
            _0x3672d7[_0x1841('0x63', '@i#K')](_0x4795f9['DqjNz'](_0x4795f9['TntUa'](_0x31560e >> 0xc, 0x3f), 0x80));
            _0x3672d7['push'](_0x4795f9['Vdhos'](_0x4795f9[_0x1841('0x4e', 'tDw(')](_0x31560e >> 0x6, 0x3f), 0x80));
            _0x3672d7['push'](_0x4795f9[_0x1841('0x11e', 'TGgT')](_0x4795f9[_0x1841('0x86', '@i#K')](_0x31560e, 0x3f), 0x80));
        } else if (_0x4795f9[_0x1841('0x12c', '9x2k')](_0x31560e, 0x800) && _0x31560e <= 0xffff) {
            if (_0x4795f9['hSwLo'](_0x4795f9[_0x1841('0x130', 'f@jX')], _0x4795f9[_0x1841('0x87', '2WR3')])) {
                var _0x16452e = 0x0;
                var _0x2565d3 = new Array(0x24);
                _0x2565d3[0x0] = _0x4795f9[_0x1841('0xae', 'OlQF')](GET_ULONG_BE, _0x2565d3[0x0], input, 0x0);
                _0x2565d3[0x1] = _0x4795f9['FRAXB'](GET_ULONG_BE, _0x2565d3[0x1], input, 0x4);
                _0x2565d3[0x2] = _0x4795f9[_0x1841('0x12e', '(eR$')](GET_ULONG_BE, _0x2565d3[0x2], input, 0x8);
                _0x2565d3[0x3] = _0x4795f9[_0x1841('0x4d', 'fx2D')](GET_ULONG_BE, _0x2565d3[0x3], input, 0xc);
                while (_0x4795f9['bgBlA'](_0x16452e, 0x20)) {
                    _0x2565d3[_0x4795f9['dlMDU'](_0x16452e, 0x4)] = _0x4795f9[_0x1841('0x11d', 'K1rY')](sm4F, _0x2565d3[_0x16452e], _0x2565d3[_0x4795f9[_0x1841('0x110', 'fx2D')](_0x16452e, 0x1)], _0x2565d3[_0x4795f9[_0x1841('0x68', 'm4AC')](_0x16452e, 0x2)], _0x2565d3[_0x4795f9[_0x1841('0x108', 'nhk6')](_0x16452e, 0x3)], sk[_0x16452e]);
                    _0x16452e++;
                }
                PUT_ULONG_BE(_0x2565d3[0x23], output, 0x0);
                _0x4795f9[_0x1841('0x70', 'Spf%')](PUT_ULONG_BE, _0x2565d3[0x22], output, 0x4);
                _0x4795f9[_0x1841('0xf3', 'lU6e')](PUT_ULONG_BE, _0x2565d3[0x21], output, 0x8);
                _0x4795f9['oCYmP'](PUT_ULONG_BE, _0x2565d3[0x20], output, 0xc);
            } else {
                _0x3672d7[_0x1841('0xc5', 'nhk6')](_0x4795f9[_0x1841('0xc', 'tDw(')](_0x4795f9['PdGir'](_0x31560e >> 0xc, 0xf), 0xe0));
                _0x3672d7[_0x1841('0x9f', 'GU4U')](_0x4795f9['xZrJy'](_0x4795f9[_0x1841('0xbc', 'FBr7')](_0x31560e, 0x6) & 0x3f, 0x80));
                _0x3672d7[_0x1841('0xa5', '54pB')](_0x4795f9['PdGir'](_0x31560e, 0x3f) | 0x80);
            }
        } else if (_0x4795f9[_0x1841('0x7', '(ON!')](_0x31560e, 0x80) && _0x4795f9[_0x1841('0x97', 'FBr7')](_0x31560e, 0x7ff)) {
            if ('bpReV' !== _0x4795f9[_0x1841('0x71', '8fAM')]) {
                _0x3672d7['push'](_0x4795f9[_0x1841('0x10', '(ON!')](_0x4795f9[_0x1841('0xaf', '(eR$')](_0x4795f9[_0x1841('0x44', 'f@jX')](_0x31560e, 0x6), 0x1f), 0xc0));
                _0x3672d7[_0x1841('0xd9', '8fAM')](_0x4795f9[_0x1841('0x111', ')WX@')](_0x31560e & 0x3f, 0x80));
            } else {
                return '';
            }
        } else {
            _0x3672d7[_0x1841('0x8f', 'FBr7')](_0x4795f9['qDnIZ'](_0x31560e, 0xff));
        }
    }
    return _0x3672d7;
};
var hexStringToByteArray = function(_0x3bd431) {
    var _0xde345e = {};
    _0xde345e[_0x1841('0x81', 'tDw(')] = function(_0x55c0ab, _0x3f3b96) {
        return _0x55c0ab(_0x3f3b96);
    }
    ;
    _0xde345e[_0x1841('0x28', 'mn)F')] = function(_0x23c23a, _0x4eed96, _0x8c0755, _0x26f5be) {
        return _0x23c23a(_0x4eed96, _0x8c0755, _0x26f5be);
    }
    ;
    _0xde345e[_0x1841('0x73', 'J)JF')] = function(_0x1cdb23, _0x29da50) {
        return _0x1cdb23 ^ _0x29da50;
    }
    ;
    _0xde345e['KmZSD'] = function(_0x870251, _0x2501ad, _0x19ac67) {
        return _0x870251(_0x2501ad, _0x19ac67);
    }
    ;
    _0xde345e[_0x1841('0xcc', '9x2k')] = function(_0x8768b8, _0x52b99a) {
        return _0x8768b8 % _0x52b99a;
    }
    ;
    _0xde345e['YZeSo'] = function(_0x4c18a4, _0x4ace1b) {
        return _0x4c18a4 !== _0x4ace1b;
    }
    ;
    _0xde345e[_0x1841('0xb7', 'FBr7')] = _0x1841('0x4a', 'A]Mh');
    var _0x291869 = _0xde345e;
    var _0x4e5fd4 = 0x0;
    var _0x3e41d8 = _0x3bd431[_0x1841('0x98', 'lU6e')];
    if (_0x291869[_0x1841('0x9b', '2WR3')](_0x3e41d8, 0x2) !== 0x0) {
        if (_0x291869['YZeSo'](_0x291869[_0x1841('0x1', 'G[Bf')], _0x291869[_0x1841('0x103', '()wm')])) {
            var _0x2b67d9 = '2|1|6|10|4|5|0|3|7|8|9|11'['split']('|');
            var _0x2bdc44 = 0x0;
            while (!![]) {
                switch (_0x2b67d9[_0x2bdc44++]) {
                case '0':
                    _0x277d44[0x1] = _0x291869['TFjhS'](sm4Sbox, _0x3ce537[0x1]);
                    continue;
                case '1':
                    var _0x1db9ac = 0x0;
                    continue;
                case '2':
                    var _0x10ce77 = 0x0;
                    continue;
                case '3':
                    _0x277d44[0x2] = _0x291869[_0x1841('0x4b', ')WX@')](sm4Sbox, _0x3ce537[0x2]);
                    continue;
                case '4':
                    _0x291869[_0x1841('0xcd', '8fAM')](PUT_ULONG_BE, ka, _0x3ce537, 0x0);
                    continue;
                case '5':
                    _0x277d44[0x0] = sm4Sbox(_0x3ce537[0x0]);
                    continue;
                case '6':
                    var _0x3ce537 = new Uint8Array(0x4);
                    continue;
                case '7':
                    _0x277d44[0x3] = _0x291869[_0x1841('0x91', 'ZrRK')](sm4Sbox, _0x3ce537[0x3]);
                    continue;
                case '8':
                    _0x10ce77 = GET_ULONG_BE(_0x10ce77, _0x277d44, 0x0);
                    continue;
                case '9':
                    _0x1db9ac = _0x291869[_0x1841('0x119', 'ctLV')](_0x10ce77 ^ ROTL(_0x10ce77, 0xd), _0x291869[_0x1841('0xdf', 'wpkV')](ROTL, _0x10ce77, 0x17));
                    continue;
                case '10':
                    var _0x277d44 = new Array(0x4);
                    continue;
                case '11':
                    return _0x1db9ac;
                }
                break;
            }
        } else {
            return _0x3bd431;
        }
    }
    _0x3e41d8 /= 0x2;
    var _0x173c41 = [];
    for (var _0x38f31a = 0x0; _0x38f31a < _0x3e41d8; _0x38f31a++) {
        var _0x36568e = _0x3bd431['substr'](_0x4e5fd4, 0x2);
        var _0x35b2ee = _0x291869[_0x1841('0x148', 't@vl')](parseInt, _0x36568e, 0x10);
        _0x173c41[_0x1841('0xd4', 'K1rY')](_0x35b2ee);
        _0x4e5fd4 += 0x2;
    }
    return _0x173c41;
};
var byteArrayToHexString = function(_0x15023f) {
    var _0x4b6ec3 = {};
    _0x4b6ec3[_0x1841('0x2a', 'f@jX')] = function(_0x416b5c, _0x1ac9ee) {
        return _0x416b5c < _0x1ac9ee;
    }
    ;
    _0x4b6ec3['LxVIr'] = function(_0x5a68de, _0x36e496) {
        return _0x5a68de !== _0x36e496;
    }
    ;
    _0x4b6ec3['DSkRw'] = _0x1841('0xd0', 't@vl');
    _0x4b6ec3['hWzjN'] = function(_0x413c55, _0x133869) {
        return _0x413c55 === _0x133869;
    }
    ;
    _0x4b6ec3[_0x1841('0x17', 'f@jX')] = function(_0x48543e, _0x45480b) {
        return _0x48543e + _0x45480b;
    }
    ;
    var _0x52a6ab = _0x4b6ec3;
    var _0xa14b75 = '';
    for (var _0x29c9a2 = 0x0; _0x52a6ab[_0x1841('0xd5', 'OlQF')](_0x29c9a2, _0x15023f[_0x1841('0x5d', 'J)JF')]); _0x29c9a2++) {
        if (_0x52a6ab[_0x1841('0x13c', 'ZrRK')](_0x52a6ab[_0x1841('0xd', '9x2k')], _0x1841('0x94', 'e*Qk'))) {
            return _0xa14b75;
        } else {
            var _0x575930 = _0x15023f[_0x29c9a2][_0x1841('0x14', 'm4AC')](0x10);
            if (_0x52a6ab[_0x1841('0x1b', 'TGgT')](_0x575930['length'], 0x1)) {
                _0x575930 = _0x52a6ab[_0x1841('0xb3', 'J)JF')]('0', _0x575930);
            }
            _0xa14b75 += _0x575930;
        }
    }
    return _0xa14b75;
};
var byteArrayToString = function(_0xd3a096) {
    var _0x3eed50 = {};
    _0x3eed50['EdIyb'] = function(_0x2422b8, _0x2d2335, _0x37cacf) {
        return _0x2422b8(_0x2d2335, _0x37cacf);
    }
    ;
    _0x3eed50[_0x1841('0xe', 'm4AC')] = function(_0x59cffb, _0x5c7a99) {
        return _0x59cffb - _0x5c7a99;
    }
    ;
    _0x3eed50[_0x1841('0x8e', 'fx2D')] = function(_0x575593, _0x2fcfb1) {
        return _0x575593 * _0x2fcfb1;
    }
    ;
    _0x3eed50['ZyREr'] = function(_0x3c482b, _0x8c3b8f) {
        return _0x3c482b === _0x8c3b8f;
    }
    ;
    _0x3eed50['VgXEZ'] = _0x1841('0x6e', '54pB');
    _0x3eed50[_0x1841('0x18', 'Ytr%')] = function(_0x2420c4, _0x56a042) {
        return _0x2420c4 !== _0x56a042;
    }
    ;
    _0x3eed50[_0x1841('0xa9', '@i#K')] = _0x1841('0x0', 'OlQF');
    _0x3eed50[_0x1841('0xf2', '2WR3')] = _0x1841('0x90', '()wm');
    _0x3eed50[_0x1841('0x138', 'K1rY')] = _0x1841('0x23', 'ctLV');
    _0x3eed50['raNcV'] = function(_0x221d75, _0x4bf5b0) {
        return _0x221d75 === _0x4bf5b0;
    }
    ;
    _0x3eed50['oXbTH'] = function(_0x1e95fe, _0x13218e) {
        return _0x1e95fe < _0x13218e;
    }
    ;
    _0x3eed50['ZNHpc'] = _0x1841('0x141', 'OlQF');
    _0x3eed50[_0x1841('0x115', '@i#K')] = function(_0x105795, _0x4c0fbb, _0x1bae97) {
        return _0x105795(_0x4c0fbb, _0x1bae97);
    }
    ;
    _0x3eed50[_0x1841('0x124', '@i#K')] = function(_0x1b8c67, _0x3fe67f) {
        return _0x1b8c67 !== _0x3fe67f;
    }
    ;
    _0x3eed50['OgpvR'] = _0x1841('0x4c', 'FBr7');
    var _0x3f1466 = _0x3eed50;
    if (_0x3f1466['ZyREr'](typeof _0xd3a096, _0x3f1466[_0x1841('0x13b', 'A]Mh')])) {
        if (_0x3f1466[_0x1841('0x106', 'ctLV')](_0x3f1466['tWeTA'], _0x3f1466[_0x1841('0xa1', 'lU6e')])) {
            return _0xd3a096;
        } else {
            _0x3f1466[_0x1841('0xd6', 't@vl')](sm4_setkey_enc, ctx, lpbKey);
        }
    }
    var _0x54ed87 = '';
    var _0x3ad91d = _0xd3a096;
    for (var _0x205073 = 0x0; _0x205073 < _0x3ad91d['length']; _0x205073++) {
        if (_0x3f1466[_0x1841('0x34', 'llt)')] !== _0x3f1466[_0x1841('0xb8', '9x2k')]) {
            if (fn) {
                var _0x59663a = fn[_0x1841('0x2d', 'P#G&')](context, arguments);
                fn = null;
                return _0x59663a;
            }
        } else {
            var _0x361c7d = _0x3ad91d[_0x205073][_0x1841('0x26', '6W#M')](0x2);
            var _0x51e9ee = _0x361c7d[_0x1841('0x42', 'm4AC')](/^1+?(?=0)/);
            if (_0x51e9ee && _0x3f1466[_0x1841('0x55', '&e(K')](_0x361c7d[_0x1841('0xba', '&e(K')], 0x8)) {
                var _0x1ed26a = _0x51e9ee[0x0]['length'];
                var _0xdf1a05 = _0x3ad91d[_0x205073][_0x1841('0x33', 'wgq3')](0x2)['slice'](0x7 - _0x1ed26a);
                for (var _0x27cb86 = 0x1; _0x3f1466[_0x1841('0x3a', 'qN!n')](_0x27cb86, _0x1ed26a); _0x27cb86++) {
                    if (_0x3f1466['rkypI'](_0x1841('0xa6', 'llt)'), _0x3f1466[_0x1841('0x3b', 'Ow@8')])) {
                        var _0x3746b2 = _0x1841('0xcf', '54pB')[_0x1841('0x12f', 'G[Bf')]('|');
                        var _0x110a33 = 0x0;
                        while (!![]) {
                            switch (_0x3746b2[_0x110a33++]) {
                            case '0':
                                var _0x10726f;
                                continue;
                            case '1':
                                ctx[_0x1841('0x53', 'm4AC')] = SM4_ENCRYPT;
                                continue;
                            case '2':
                                sm4_setkey(ctx['sk'], key);
                                continue;
                            case '3':
                                for (_0x10726f = 0x0; _0x10726f < 0x10; _0x10726f++) {
                                    _0x54c9bd = ctx['sk'][_0x3f1466[_0x1841('0x27', 't@vl')](0x1f, _0x10726f)];
                                    ctx['sk'][_0x3f1466[_0x1841('0x7e', 'K1rY')](0x1f, _0x10726f)] = ctx['sk'][_0x10726f];
                                    ctx['sk'][_0x10726f] = _0x54c9bd;
                                }
                                continue;
                            case '4':
                                var _0x54c9bd;
                                continue;
                            }
                            break;
                        }
                    } else {
                        _0xdf1a05 += _0x3ad91d[_0x27cb86 + _0x205073][_0x1841('0x95', '8fAM')](0x2)[_0x1841('0xc1', 'wgq3')](0x2);
                    }
                }
                _0x54ed87 += String['fromCharCode'](_0x3f1466[_0x1841('0x122', 'm4AC')](parseInt, _0xdf1a05, 0x2));
                _0x205073 += _0x3f1466[_0x1841('0x72', 'wgq3')](_0x1ed26a, 0x1);
            } else {
                if (_0x3f1466[_0x1841('0x127', 'wgq3')](_0x3f1466[_0x1841('0x19', 'P#G&')], _0x1841('0xa2', 'ZrRK'))) {
                    substr = _0x54ed87[_0x1841('0x80', 'G[Bf')](0x2 * _0x205073, _0x3f1466['WqnyD'](0x2, _0x205073 + 0x1));
                    result[_0x205073] = _0x3f1466[_0x1841('0x121', '9x2k')](parseInt, substr, 0x10) || 0x0;
                } else {
                    _0x54ed87 += String[_0x1841('0x3', 'G[Bf')](_0x3ad91d[_0x205073]);
                }
            }
        }
    }
    return _0x54ed87;
};
function SM4CryptECBWithPKCS7Padding(_0x199a4c, _0x4bc079, _0x329db2) {
    var _0x291711 = {};
    _0x291711[_0x1841('0x65', 'Spf%')] = function(_0x23aeb3, _0x3a8852) {
        return _0x23aeb3 | _0x3a8852;
    }
    ;
    _0x291711[_0x1841('0xc4', 'GU4U')] = function(_0x277e53, _0x13a7da) {
        return _0x277e53 & _0x13a7da;
    }
    ;
    _0x291711[_0x1841('0x135', '(eR$')] = function(_0x1aafbb, _0x9f1862) {
        return _0x1aafbb >> _0x9f1862;
    }
    ;
    _0x291711[_0x1841('0x22', 'wgq3')] = function(_0x3315f6, _0x4c15d2) {
        return _0x3315f6 | _0x4c15d2;
    }
    ;
    _0x291711[_0x1841('0xff', '@Dq0')] = function(_0x2c8144, _0x410ff6, _0x16df28, _0x408d20) {
        return _0x2c8144(_0x410ff6, _0x16df28, _0x408d20);
    }
    ;
    _0x291711[_0x1841('0x9a', 'FBr7')] = function(_0x5a92e5, _0x2eacb8, _0x1ccfaf) {
        return _0x5a92e5(_0x2eacb8, _0x1ccfaf);
    }
    ;
    _0x291711[_0x1841('0xd7', 'TGgT')] = _0x1841('0x132', 'eDOd');
    _0x291711[_0x1841('0xbd', 'kGR$')] = function(_0xaeb954, _0x3dbfcd) {
        return _0xaeb954 !== _0x3dbfcd;
    }
    ;
    _0x291711[_0x1841('0xf5', '&e(K')] = 'zGtBu';
    _0x291711[_0x1841('0x89', 'P#G&')] = function(_0x29702d, _0xa05fa5) {
        return _0x29702d === _0xa05fa5;
    }
    ;
    _0x291711[_0x1841('0x10f', 'wgq3')] = 'RkGiY';
    _0x291711[_0x1841('0x10e', 'K1rY')] = function(_0x4ad724, _0x3a319a) {
        return _0x4ad724 - _0x3a319a;
    }
    ;
    _0x291711[_0x1841('0x113', 'Ow@8')] = function(_0x15dc7c, _0x43dbe9) {
        return _0x15dc7c(_0x43dbe9);
    }
    ;
    _0x291711['gNMKQ'] = function(_0x2826e2, _0x1f5b97) {
        return _0x2826e2 === _0x1f5b97;
    }
    ;
    _0x291711[_0x1841('0x5f', ')WX@')] = function(_0x352018, _0x3dd975, _0x522713) {
        return _0x352018(_0x3dd975, _0x522713);
    }
    ;
    _0x291711[_0x1841('0xc9', '8fAM')] = function(_0x1b67ad, _0x4f4da7, _0x124f1d) {
        return _0x1b67ad(_0x4f4da7, _0x124f1d);
    }
    ;
    _0x291711[_0x1841('0x133', 'P#G&')] = function(_0x21ee89, _0x14e44f, _0x3a9c77, _0x409219, _0x34ce37, _0x1661db) {
        return _0x21ee89(_0x14e44f, _0x3a9c77, _0x409219, _0x34ce37, _0x1661db);
    }
    ;
    _0x291711['kfAWl'] = function(_0x23046d, _0x39c858) {
        return _0x23046d - _0x39c858;
    }
    ;
    _0x291711[_0x1841('0x101', 'Vcvx')] = function(_0x289420, _0x2dca56) {
        return _0x289420 < _0x2dca56;
    }
    ;
    _0x291711[_0x1841('0x1a', 'llt)')] = function(_0x2cf814, _0x3f9ba6) {
        return _0x2cf814 === _0x3f9ba6;
    }
    ;
    _0x291711[_0x1841('0xad', '8fAM')] = 'TlXsw';
    _0x291711[_0x1841('0x3d', 'mn)F')] = function(_0x1e8eb1, _0x2313ca) {
        return _0x1e8eb1(_0x2313ca);
    }
    ;
    var _0x52bdcd = _0x291711;
    var _0x2950d6 = _0x329db2 ? _0x329db2 : _0x52bdcd[_0x1841('0x2b', 'R&Ky')];
    if (_0x52bdcd[_0x1841('0x9c', '9x2k')](_0x2950d6[_0x1841('0x147', 'R&Ky')], 0x20)) {
        if (_0x1841('0x6d', '![uR') === _0x52bdcd[_0x1841('0x1c', '@Dq0')]) {
            bytes[_0x1841('0x63', '@i#K')](_0x52bdcd[_0x1841('0x4f', 'ZrRK')](_0x52bdcd[_0x1841('0x136', 'tDw(')](_0x52bdcd[_0x1841('0xd2', 'j@C6')](c, 0xc), 0xf), 0xe0));
            bytes['push'](_0x52bdcd['ctVig'](_0x52bdcd[_0x1841('0x105', 's$Az')](c, 0x6) & 0x3f, 0x80));
            bytes[_0x1841('0x7f', '![uR')](_0x52bdcd[_0x1841('0xfe', 'kGR$')](c, 0x3f) | 0x80);
        } else {
            return '';
        }
    }
    var _0x368a94 = null;
    if (_0x52bdcd[_0x1841('0xc6', 's$Az')](_0x4bc079, SM4_ENCRYPT)) {
        _0x368a94 = stringToByteArray(_0x199a4c);
    } else {
        _0x368a94 = hexStringToByteArray(_0x199a4c);
    }
    var _0xde25a7 = _0x368a94[_0x1841('0x8d', 'OlQF')];
    if (_0x52bdcd['ajpJg'](_0x4bc079, SM4_ENCRYPT)) {
        if (_0x52bdcd['iaRHz'](_0x52bdcd[_0x1841('0xbe', '8fAM')], _0x52bdcd[_0x1841('0xca', 'qN!n')])) {
            if (!inArray) {
                return;
            }
            return _0x52bdcd['dnxvI'](SM4CryptECBWithPKCS7Padding, inArray, 0x1, _0x329db2);
        } else {
            var _0xda05b2 = _0x52bdcd['PXRsf'](0x10, _0xde25a7 % 0x10);
            for (var _0x52ed81 = 0x0; _0x52ed81 < _0xda05b2; _0x52ed81++) {
                _0x368a94[_0x1841('0x60', 'e*Qk')](_0xda05b2);
            }
        }
    }
    var _0x580f71 = new Sm4_context();
    var _0x56a5bc = _0x52bdcd['GJoRT'](hex2Array, _0x2950d6);
    if (_0x52bdcd[_0x1841('0x61', 'R&Ky')](_0x4bc079, SM4_ENCRYPT)) {
        _0x52bdcd['WBOIM'](sm4_setkey_enc, _0x580f71, _0x56a5bc);
    } else {
        _0x52bdcd[_0x1841('0x143', 'jNjg')](sm4_setkey_dec, _0x580f71, _0x56a5bc);
    }
    var _0x3bb0c4 = new Array(_0x368a94['length']);
    _0x52bdcd[_0x1841('0xc3', 'R&Ky')](sm4_crypt_ecb, _0x580f71, _0x4bc079, _0x368a94['length'], _0x368a94, _0x3bb0c4);
    if (_0x4bc079 === SM4_DECRYPT) {
        var _0xda05b2 = _0x3bb0c4[_0x52bdcd[_0x1841('0x117', 't@vl')](_0x3bb0c4[_0x1841('0x98', 'lU6e')], 0x1)];
        for (var _0x52ed81 = 0x0; _0x52bdcd[_0x1841('0xe7', 'ZrRK')](_0x52ed81, _0xda05b2); _0x52ed81++) {
            _0x3bb0c4[_0x1841('0xd1', '@i#K')]();
        }
    }
    if (_0x52bdcd[_0x1841('0x38', 'GU4U')](_0x4bc079, SM4_ENCRYPT)) {
        if (_0x52bdcd[_0x1841('0xa7', 'P#G&')](_0x52bdcd['pJcFR'], _0x52bdcd[_0x1841('0xce', 'J)JF')])) {
            return _0x52bdcd[_0x1841('0xea', '&e(K')](byteArrayToHexString, _0x3bb0c4);
        } else {
            var _0x3a70c7 = str[_0x1841('0xb4', 'm4AC')](pos, 0x2);
            var _0x9332fa = _0x52bdcd[_0x1841('0x2', 'ctLV')](parseInt, _0x3a70c7, 0x10);
            arrBytes[_0x1841('0x30', 'jNjg')](_0x9332fa);
            pos += 0x2;
        }
    }
    return byteArrayToString(_0x3bb0c4);
}
function encrypt(_0x281d05, _0x4e0fcb) {
    var _0x1b99da = {};
    _0x1b99da[_0x1841('0xe8', '()wm')] = function(_0x2ec612, _0x659472, _0x1cd8f9, _0x42d53b) {
        return _0x2ec612(_0x659472, _0x1cd8f9, _0x42d53b);
    }
    ;
    var _0x227bd0 = _0x1b99da;
    if (!_0x281d05) {
        return;
    }
    return _0x227bd0['sGsdR'](SM4CryptECBWithPKCS7Padding, _0x281d05, 0x1, _0x4e0fcb);
}
function decrypt(_0x4a1935, _0x36eabf) {
    var _0x192ea1 = {};
    _0x192ea1[_0x1841('0x3c', '8fAM')] = _0x1841('0x66', 'FBr7');
    _0x192ea1[_0x1841('0x7d', '@i#K')] = function(_0x284992, _0xf0aced, _0x470d0, _0x563c18) {
        return _0x284992(_0xf0aced, _0x470d0, _0x563c18);
    }
    ;
    _0x192ea1[_0x1841('0x82', 'm4AC')] = function(_0xdf5f03, _0x2e8e48) {
        return _0xdf5f03 === _0x2e8e48;
    }
    ;
    _0x192ea1['eDJsN'] = 'mbeHU';
    var _0xcf234c = _0x192ea1;
    try {
        return _0xcf234c[_0x1841('0x140', 'Ytr%')](SM4CryptECBWithPKCS7Padding, _0x4a1935, 0x0, _0x36eabf);
    } catch (_0x555dbb) {
        if (_0xcf234c['gBNdZ'](_0xcf234c['eDJsN'], _0xcf234c['eDJsN'])) {
            return '';
        } else {
            var _0x1b2a9b = test[_0x1841('0x10d', 'K1rY')](_0x1841('0x59', 'Ytr%'))()[_0x1841('0x77', 'tDw(')](_0xcf234c['eMAmf']);
            return !_0x1b2a9b[_0x1841('0x92', '(ON!')](_0x596442);
        }
    }
}



结帖率:83% (70/84)

签到天数: 4 天

 楼主| 发表于 2026-6-24 13:31:54 | 显示全部楼层   河南省驻马店市
ysp半步 发表于 2026-6-24 08:52
[mw_shl_code=javascript,true]var SM4_ENCRYPT = 1;
var SM4_DECRYPT = 0;
var DEFAULT_KEY = '88B48F3753 ...

感谢大神!也感谢楼上的几位大神的热情帮助!ysp半步给的上述代码删除结尾的<i>后,替换掉中间的<i>为后,结果一下子就出来了!很激动。回头我再研究一下那个key是怎么获取的。抱着大神的小腿,很幸福,虽然自己水平不怎么样,但跟着你们学习,乐趣还是很大的。
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 26 天

发表于 2026-6-24 11:46:35 | 显示全部楼层   河南省平顶山市
拿到密钥 套算法就行了
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2026-6-24 11:24:25 | 显示全部楼层   河南省周口市
AI,你要告诉它,***这一段是错误的,不要再给我错误提示
回复 支持 反对

使用道具 举报

结帖率:80% (8/10)

签到天数: 23 天

发表于 2026-6-24 08:52:16 | 显示全部楼层   四川省眉山市
[JavaScript] 纯文本查看 复制代码
var SM4_ENCRYPT = 1;
var SM4_DECRYPT = 0;
var DEFAULT_KEY = '88B48F375380AD6D9639147D49096DB3';

var SBOX = [
    0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 0x16, 0xb6, 0x14, 0xc2, 0x28, 0xfb, 0x2c, 0x05,
    0x2b, 0x67, 0x9a, 0x76, 0x2a, 0xbe, 0x04, 0xc3, 0xaa, 0x44, 0x13, 0x26, 0x49, 0x86, 0x06, 0x99,
    0x9c, 0x42, 0x50, 0xf4, 0x91, 0xef, 0x98, 0x7a, 0x33, 0x54, 0x0b, 0x43, 0xed, 0xcf, 0xac, 0x62,
    0xe4, 0xb3, 0x1c, 0xa9, 0xc9, 0x08, 0xe8, 0x95, 0x80, 0xdf, 0x94, 0xfa, 0x75, 0x8f, 0x3f, 0xa6,
    0x47, 0x07, 0xa7, 0xfc, 0xf3, 0x73, 0x17, 0xba, 0x83, 0x59, 0x3c, 0x19, 0xe6, 0x85, 0x4f, 0xa8,
    0x68, 0x6b, 0x81, 0xb2, 0x71, 0x64, 0xda, 0x8b, 0xf8, 0xeb, 0x0f, 0x4b, 0x70, 0x56, 0x9d, 0x35,
    0x1e, 0x24, 0x0e, 0x5e, 0x63, 0x58, 0xd1, 0xa2, 0x25, 0x22, 0x7c, 0x3b, 0x01, 0x21, 0x78, 0x87,
    0xd4, 0x00, 0x46, 0x57, 0x9f, 0xd3, 0x27, 0x52, 0x4c, 0x36, 0x02, 0xe7, 0xa0, 0xc4, 0xc8, 0x9e,
    0xea, 0xbf, 0x8a, 0xd2, 0x40, 0xc7, 0x38, 0xb5, 0xa3, 0xf7, 0xf2, 0xce, 0xf9, 0x61, 0x15, 0xa1,
    0xe0, 0xae, 0x5d, 0xa4, 0x9b, 0x34, 0x1a, 0x55, 0xad, 0x93, 0x32, 0x30, 0xf5, 0x8c, 0xb1, 0xe3,
    0x1d, 0xf6, 0xe2, 0x2e, 0x82, 0x66, 0xca, 0x60, 0xc0, 0x29, 0x23, 0xab, 0x0d, 0x53, 0x4e, 0x6f,
    0xd5, 0xdb, 0x37, 0x45, 0xde, 0xfd, 0x8e, 0x2f, 0x03, 0xff, 0x6a, 0x72, 0x6d, 0x6c, 0x5b, 0x51,
    0x8d, 0x1b, 0xaf, 0x92, 0xbb, 0xdd, 0xbc, 0x7f, 0x11, 0xd9, 0x5c, 0x41, 0x1f, 0x10, 0x5a, 0xd8,
    0x0a, 0xc1, 0x31, 0x88, 0xa5, 0xcd, 0x7b, 0xbd, 0x2d, 0x74, 0xd0, 0x12, 0xb8, 0xe5, 0xb4, 0xb0,
    0x89, 0x69, 0x97, 0x4a, 0x0c, 0x96, 0x77, 0x7e, 0x65, 0xb9, 0xf1, 0x09, 0xc5, 0x6e, 0xc6, 0x84,
    0x18, 0xf0, 0x7d, 0xec, 0x3a, 0xdc, 0x4d, 0x20, 0x79, 0xee, 0x5f, 0x3e, 0xd7, 0xcb, 0x39, 0x48
];

var FK = [0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc];
var CK = [
    0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
    0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,
    0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229, 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299,
    0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209, 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279
];

function Sm4_context() {
    this.mode = SM4_ENCRYPT;
    this.sk = [];
}

function rotl(value, bits) {
    return ((value << bits) | (value >>> (32 - bits))) >>> 0;
}

function getUInt32BE(bytes, offset) {
    return (
        ((bytes[offset] & 0xff) << 24) |
        ((bytes[offset + 1] & 0xff) << 16) |
        ((bytes[offset + 2] & 0xff) << 8) |
        (bytes[offset + 3] & 0xff)
    ) >>> 0;
}

function putUInt32BE(value, bytes, offset) {
    bytes[offset] = (value >>> 24) & 0xff;
    bytes[offset + 1] = (value >>> 16) & 0xff;
    bytes[offset + 2] = (value >>> 8) & 0xff;
    bytes[offset + 3] = value & 0xff;
}

function sm4Sbox(value) {
    return SBOX[value & 0xff];
}

function tau(value) {
    return (
        (sm4Sbox(value >>> 24) << 24) |
        (sm4Sbox(value >>> 16) << 16) |
        (sm4Sbox(value >>> 8) << 8) |
        sm4Sbox(value)
    ) >>> 0;
}

function linearTransform(value) {
    value = tau(value);
    return (value ^ rotl(value, 2) ^ rotl(value, 10) ^ rotl(value, 18) ^ rotl(value, 24)) >>> 0;
}

function keyTransform(value) {
    value = tau(value);
    return (value ^ rotl(value, 13) ^ rotl(value, 23)) >>> 0;
}

function sm4F(x0, x1, x2, x3, rk) {
    return (x0 ^ linearTransform((x1 ^ x2 ^ x3 ^ rk) >>> 0)) >>> 0;
}

function sm4CalciRK(value) {
    return keyTransform(value);
}

function sm4_setkey(roundKeys, key) {
    var mk = [
        getUInt32BE(key, 0),
        getUInt32BE(key, 4),
        getUInt32BE(key, 8),
        getUInt32BE(key, 12)
    ];
    var k = [
        (mk[0] ^ FK[0]) >>> 0,
        (mk[1] ^ FK[1]) >>> 0,
        (mk[2] ^ FK[2]) >>> 0,
        (mk[3] ^ FK[3]) >>> 0
    ];

    for (var i = 0; i < 32; i++) {
        k[i + 4] = (k ^ sm4CalciRK((k[i + 1] ^ k[i + 2] ^ k[i + 3] ^ CK) >>> 0)) >>> 0;
        roundKeys = k[i + 4];
    }
}

function sm4_setkey_enc(ctx, key) {
    ctx.mode = SM4_ENCRYPT;
    sm4_setkey(ctx.sk, key);
}

function sm4_setkey_dec(ctx, key) {
    ctx.mode = SM4_DECRYPT;
    sm4_setkey(ctx.sk, key);
    ctx.sk.reverse();
}

function sm4_one_round(roundKeys, input, output) {
    var x = [
        getUInt32BE(input, 0),
        getUInt32BE(input, 4),
        getUInt32BE(input, 8),
        getUInt32BE(input, 12)
    ];

    for (var i = 0; i < 32; i++) {
        x[i + 4] = sm4F(x, x[i + 1], x[i + 2], x[i + 3], roundKeys);
    }

    putUInt32BE(x[35], output, 0);
    putUInt32BE(x[34], output, 4);
    putUInt32BE(x[33], output, 8);
    putUInt32BE(x[32], output, 12);
}

function sm4_crypt_ecb(ctx, mode, length, input, output) {
    for (var offset = 0; offset < length; offset += 16) {
        var block = input.slice(offset, offset + 16);
        var encrypted = new Array(16);
        sm4_one_round(ctx.sk, block, encrypted);
        for (var i = 0; i < 16; i++) {
            output[offset + i] = encrypted;
        }
    }
}

function hex2Array(hex) {
    var bytes = [];
    for (var i = 0; i < hex.length; i += 2) {
        bytes.push(parseInt(hex.slice(i, i + 2), 16) || 0);
    }
    return bytes;
}

function stringToByteArray(value) {
    if (typeof TextEncoder !== 'undefined') {
        return Array.from(new TextEncoder().encode(value));
    }

    var encoded = unescape(encodeURIComponent(value));
    var bytes = [];
    for (var i = 0; i < encoded.length; i++) {
        bytes.push(encoded.charCodeAt(i));
    }
    return bytes;
}

var hexStringToByteArray = hex2Array;

var byteArrayToHexString = function(bytes) {
    var hex = '';
    for (var i = 0; i < bytes.length; i++) {
        hex += (bytes & 0xff).toString(16).padStart(2, '0');
    }
    return hex;
};

var byteArrayToString = function(bytes) {
    if (typeof TextDecoder !== 'undefined') {
        return new TextDecoder().decode(new Uint8Array(bytes));
    }

    var encoded = '';
    for (var i = 0; i < bytes.length; i++) {
        encoded += '%' + (bytes & 0xff).toString(16).padStart(2, '0');
    }
    return decodeURIComponent(encoded);
};

function addPKCS7Padding(bytes) {
    var padding = 16 - (bytes.length % 16);
    if (padding === 0) {
        padding = 16;
    }

    var result = bytes.slice();
    for (var i = 0; i < padding; i++) {
        result.push(padding);
    }
    return result;
}

function removePKCS7Padding(bytes) {
    var padding = bytes[bytes.length - 1];
    if (padding < 1 || padding > 16 || padding > bytes.length) {
        throw new Error('Invalid PKCS#7 padding');
    }

    for (var i = bytes.length - padding; i < bytes.length; i++) {
        if (bytes !== padding) {
            throw new Error('Invalid PKCS#7 padding');
        }
    }
    return bytes.slice(0, bytes.length - padding);
}

function SM4CryptECBWithPKCS7Padding(input, mode, key) {
    key = key || DEFAULT_KEY;
    if (typeof key !== 'string' || key.length !== 32) {
        return '';
    }

    var keyBytes = hex2Array(key);
    if (keyBytes.length !== 16) {
        return '';
    }

    var inputBytes = mode === SM4_ENCRYPT ? addPKCS7Padding(stringToByteArray(input)) : hexStringToByteArray(input);
    if (inputBytes.length % 16 !== 0) {
        return '';
    }

    var ctx = new Sm4_context();
    if (mode === SM4_ENCRYPT) {
        sm4_setkey_enc(ctx, keyBytes);
    } else {
        sm4_setkey_dec(ctx, keyBytes);
    }

    var output = new Array(inputBytes.length);
    sm4_crypt_ecb(ctx, mode, inputBytes.length, inputBytes, output);

    if (mode === SM4_ENCRYPT) {
        return byteArrayToHexString(output);
    }
    return byteArrayToString(removePKCS7Padding(output));
}

function encrypt(input, key) {
    if (!input) {
        return;
    }
    return SM4CryptECBWithPKCS7Padding(input, SM4_ENCRYPT, key);
}

function decrypt(input, key) {
    try {
        return SM4CryptECBWithPKCS7Padding(input, SM4_DECRYPT, key);
    } catch (error) {
        return '';
    }
}

if (typeof module !== 'undefined' && module.exports) {
    module.exports = {
        encrypt: encrypt,
        decrypt: decrypt,
        SM4CryptECBWithPKCS7Padding: SM4CryptECBWithPKCS7Padding
    };
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表