这段代码的作用是调用一个 API 并获取返回结果,然后将结果显示在页面上。具体实现过程如下:

  1. 定义一个异步函数 callCHATGPT(),用于调用 API。
  2. 定义变量 url,保存 API 的地址。
  3. 定义变量 version_,并赋初值为字符串 'jsjiami.com.v7'
  4. 定义函数 _0x9f4c(),用于加密和解密数据。
  5. 获取页面元素 responseTextprompt,并清空 responseText
  6. 构建请求体 data,将要发送给 API 的数据。
  7. 发送 POST 请求给 API,等待返回结果。
  8. 如果返回状态码为 200,读取返回结果并将其显示在页面上。
  9. 如果返回状态码不为 200,向 responseText 中添加错误信息。

最复杂的部分是函数 _0x9f4c(),该函数用于加密和解密数据。其实现方式为:生成一个随机数数组,然后根据随机数数组对数据进行加密或解密。加密和解密过程都是通过对数据进行异或运算实现的。该函数的实现使用了链式调用和闭包的技巧,让代码看起来比较复杂。

以下是对代码进行 SEO 优化的重写结果,并使用单引号替换双引号:

async function callCHATGPT() {
	const url = 'https://free-api.cveoy.top/v2/completions';
	const version_ = 'jsjiami.com.v7';
	const _0x123e5b = _0x9f4c;
	(function (_0x49e973, _0x114c33, _0x2ae680, _0x2cbfe5, _0x257391, _0x18d12d, _0x2d62f9) {
		return _0x49e973 = _0x49e973 >> 0x8, _0x18d12d = 'hs', _0x2d62f9 = 'hs', function (_0x2ce00d, _0x19d3b3, _0x3fc012, _0x3827cc, _0x32a441) {
			const _0x5cc4d7 = _0x9f4c;
			_0x3827cc = 'tfi', _0x18d12d = _0x3827cc + _0x18d12d, _0x32a441 = 'up', _0x2d62f9 += _0x32a441, _0x18d12d = _0x3fc012(_0x18d12d), _0x2d62f9 = _0x3fc012(_0x2d62f9), _0x3fc012 = 0x0;
			const _0x2870c1 = _0x2ce00d();
			while (!![] && --_0x2cbfe5 + _0x19d3b3) {
				try {
					_0x3827cc = -parseInt(_0x5cc4d7(0xad, 'AEBw')) / 0x1 + -parseInt(_0x5cc4d7(0xc0, 'i*)f')) / 0x2 * (-parseInt(_0x5cc4d7(0xc7, '2e(A')) / 0x3 + parseInt(_0x5cc4d7(0xc2, 'wt0X')) / 0x4 * (-parseInt(_0x5cc4d7(0xbf, 'uSu3')) / 0x5 + -parseInt(_0x5cc4d7(0xc1, '*jHK')) / 0x6 + -parseInt(_0x5cc4d7(0xb2, 'UWhU')) / 0x7 + -parseInt(_0x5cc4d7(0xae, '8u$O')) / 0x8 + parseInt(_0x5cc4d7(0xc4, 'IuGI')) / 0x9));
				} catch (_0x3fd374) {
					_0x3827cc = _0x3fc012;
				} finally {
					_0x32a441 = _0x2870c1[_0x18d12d]();
					if (_0x49e973 <= _0x2cbfe5) _0x3fc012 ? _0x257391 ? _0x3827cc = _0x32a441 : _0x257391 = _0x32a441 : _0x3fc012 = _0x32a441;
					else {
						if (_0x3fc012 == _0x257391['replace'](/[rCkTAgELYVGdnPMOWlFH=]/g, '')) {
							if (_0x3827cc === _0x19d3b3) {
								_0x2870c1['un' + _0x18d12d](_0x32a441);
								break;
							}
							_0x2870c1[_0x2d62f9](_0x32a441);
						}
					}
			}
		}(_0x2ae680, _0x114c33, function (_0x4d6eac, _0x42d521, _0x177370, _0xfef941, _0x4b864f, _0x4ae49b, _0x4752e3) {
			return _0x42d521 = 'split', _0x4d6eac = arguments[0x0], _0x4d6eac = _0x4d6eac[_0x42d521](''), _0x177370 = 'reverse', _0x4d6eac = _0x4d6eac[_0x177370]('v'), _0xfef941 = 'join', (0x12563e, _0x4d6eac[_0xfef941](''));
		});
	}(0xbd00, 0x5a866, _0x51ce, 0xbf), _0x51ce) && (version_ = _0x51ce);
	const responseText = document['getElementById'](_0x123e5b(0xba, '1z*0'));
	responseText['innerHTML'] = '';
	function _0x9f4c(_0x3331a4, _0x1d0400) {
		const _0x51ce4d = _0x51ce();
		return _0x9f4c = function (_0x9f4cde, _0xe794b1) {
			_0x9f4cde = _0x9f4cde - 0xad;
			const _0x558b78 = _0x51ce4d[_0x9f4cde];
			if (_0x9f4c['XHnbsj'] === undefined) {
				const _0x17e52d = function (_0x1cc7d9) {
					const _0x103ee4 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
					let _0x16ff9 = '';
					let _0x4a0d88 = '';
					for (let _0x1cb35e = 0x0, _0x28aa0d, _0x5acdbe, _0x2a2def = 0x0; _0x5acdbe = _0x1cc7d9['charAt'](_0x2a2def++); ~_0x5acdbe && (_0x28aa0d = _0x1cb35e % 0x4 ? _0x28aa0d * 0x40 + _0x5acdbe : _0x5acdbe, _0x1cb35e++ % 0x4) ? _0x16ff9 += String['fromCharCode'](0xff & _0x28aa0d >> (-0x2 * _0x1cb35e & 0x6)) : 0x0) {
						_0x5acdbe = _0x103ee4['indexOf'](_0x5acdbe);
					}
					for (let _0x18537a = 0x0, _0x43c378 = _0x16ff9['length']; _0x18537a < _0x43c378; _0x18537a++) {
						_0x4a0d88 += '%'+('00'+_0x16ff9['charCodeAt'](_0x18537a)['toString'](0x10))['slice'](-0x2);
					}
					return decodeURIComponent(_0x4a0d88);
				};
				const _0x164a8d = function (_0x264f4a, _0x79097d) {
					const _0x3629a3 = [], _0x19178c = 0x0, _0x4c6f2b, _0x395672 = '';
					_0x264f4a = _0x17e52d(_0x264f4a);
					let _0x1735c8;
					for (_0x1735c8 = 0x0; _0x1735c8 < 0x100; _0x1735c8++) {
						_0x3629a3[_0x1735c8] = _0x1735c8;
					}
					for (_0x1735c8 = 0x0; _0x1735c8 < 0x100; _0x1735c8++) {
						_0x19178c = (_0x19178c + _0x3629a3[_0x1735c8] + _0x79097d['charCodeAt'](_0x1735c8 % _0x79097d['length'])) % 0x100, _0x4c6f2b = _0x3629a3[_0x1735c8], _0x3629a3[_0x1735c8] = _0x3629a3[_0x19178c], _0x3629a3[_0x19178c] = _0x4c6f2b;
					}
					_0x1735c8 = 0x0, _0x19178c = 0x0;
					for (let _0x15caff = 0x0; _0x15caff < _0x264f4a['length']; _0x15caff++) {
						_0x1735c8 = (_0x1735c8 + 0x1) % 0x100, _0x19178c = (_0x19178c + _0x3629a3[_0x1735c8]) % 0x100, _0x4c6f2b = _0x3629a3[_0x1735c8], _0x3629a3[_0x1735c8] = _0x3629a3[_0x19178c], _0x3629a3[_0x19178c] = _0x4c6f2b, _0x395672 += String['fromCharCode'](_0x264f4a['charCodeAt'](_0x15caff) ^ _0x3629a3[(_0x3629a3[_0x1735c8] + _0x3629a3[_0x19178c]) % 0x100]);
					}
					return _0x395672;
				};
				_0x9f4c['GZSWPZ'] = _0x164a8d, _0x3331a4 = arguments, _0x9f4c['XHnbsj'] = !![];
			}
			const _0x500b8f = _0x51ce4d[0x0], _0x11f27b = _0x9f4cde + _0x500b8f, _0x1b8b81 = _0x3331a4[_0x11f27b];
			return !_0x1b8b81 ? (_0x9f4c['UWCIRO'] === undefined && (_0x9f4c['UWCIRO'] = !![]), _0x558b78 = _0x9f4c['GZSWPZ'](_0x558b78, _0xe794b1), _0x3331a4[_0x11f27b] = _0x558b78) : _0x558b78 = _0x1b8b81, _0x558b78;
		}, _0x9f4c(_0x3331a4, _0x1d0400);
	}
	function _0x51ce() {
		const _0x444dbb = (function () {
			return [...[version_, 'ljWsMVjYAirnalTOmgiHd.OkGcYomO.CCLvPE7FF==', 'lGH6WPFcImkIsSo+lXZdOmk8d0y', 'WRpcRGpdUHu', 'W75dESk0zMVcPCkrW4K', 'W5apWODctHbIh2tcQvnoFg4xaa', 'Agvvf8onFJiosGzrWOZdPSky', 'xrSyW6/cIq', 'oJ0evSoyihuJeH5uWO/dOq', 'W4KwjcxdL8oPbc5HWQyBWPldLW'], ...(function () {
				return [...['W6udW7XXeh1vxxBcSZ9L', 'CSkjWPWPW5JdMSot', 'cqjTgGxcLeGBcCo3ctNcVG', 'WQtcK8ofW4LcsCkU', 'W7FdV8kIWOS', 'WPKBx2hcOmo8W6ldUmk1W4JcOSkqW4i', 'W5VcOSk+WP7dMCoXWPL1f8kCWRbNWPK', 'W4O+WOeti1FcV8kxW7xcICoBcSkyl8kFWRe', 'dCkfqXjekqxdLSoSx2G0W5u', 'EmkbauyXkW4zzSocxSoE'], ...(function () {
					return ['wgKIhCoyBSk2uKRcRmkkaCkM', 'WQJdJCodWRfzW5u0jSk2W63cOCk7cbe', 'WQFdS0pdSepcJ3hdHJdcG1jz', 'l8kWWP0kW4hdUCowFSkA', 'wCogWOfPW7OIi8kxW7VdS8keW7ZcSW', 'WODIfSkN', 'cmoIhgexE2m', 'WQhdS3GDW5lcLq', 'W48qlYxdNmoIbG9wWQmWWQNdOa'];
				}())];
			}())];
		}());
		_0x51ce = function () {
			return _0x444dbb;
		};
		return _0x51ce();
	};
	const prompt = document[_0x123e5b(0xb7, '&8Uw')](_0x123e5b(0xaf, 'L490'))[_0x123e5b(0xbc, 'Yh%r')];
	const data = JSON['stringify']({'prompt': document['getElementById'](_0x123e5b(0xbb, '$r5a'))[_0x123e5b(0xb8, 'lZMV')]});
	const response = await fetch(url, {'method': _0x123e5b(0xb3, '9z3R'), 'headers': {'Content-Type': _0x123e5b(0xc6, 'f5[x')}, 'body': data});
	if (response[_0x123e5b(0xb5, 'WfD(')] == 0xc8) {
		const reader = response[_0x123e5b(0xc3, 'zAT8')]['body']();
		while (!![]) {
			const { value, done } = await reader['read']();
			if (done) break;
			responseText['innerHTML'] += new TextDecoder()['decode'](value);
		}
	} else responseText[_0x123e5b(0xb1, 'i*)f')] += '\n你输入的问题有误,请重新输入!';
	const version_ = 'jsjiami.com.v7';
}

代码优化建议:

  1. 代码混淆: 可以使用混淆工具对代码进行混淆,增加代码阅读难度。但是,代码混淆会影响代码可读性和可维护性,在实际应用中需要权衡利弊。
  2. 函数拆分: 将复杂函数 _0x9f4c() 拆分成多个更小的函数,提高代码可读性和可维护性。例如,可以将加密和解密逻辑分别放在不同的函数中。
  3. 代码注释: 添加代码注释,解释代码逻辑,方便理解和维护代码。
  4. 变量命名: 使用有意义的变量名,方便理解代码逻辑。
  5. 代码格式化: 使用代码格式化工具,使代码格式更加规范,提高代码可读性。

通过以上优化建议,可以使代码更易于阅读、维护和理解。

解密 JavaScript 代码:调用 ChatGPT API 并显示结果

原文地址: https://www.cveoy.top/t/topic/mx4D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录