Security.js 8.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/network/Security.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'aa378yDUwJDbacfYfzgcaKG', 'Security');
  13. // script/network/Security.ts
  14. "use strict";
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. exports.Security = void 0;
  17. // import TextEncodingPolyfill from 'text-encoding';
  18. /** 数据传输加密 */
  19. var Security = /** @class */ (function () {
  20. function Security() {
  21. }
  22. Security.repeatArray = function (arr, size) {
  23. var repeatedArray = arr.slice(); // 复制原数组
  24. while (repeatedArray.length < size) {
  25. // 如果数组长度小于指定大小,就复制一份原数组内容并追加到末尾
  26. repeatedArray = repeatedArray.concat(arr.slice(0, size - repeatedArray.length));
  27. }
  28. return repeatedArray.slice(0, size); // 返回指定长度的数组
  29. };
  30. Security.mapKey = function (size) {
  31. var seed = Number('905010410038421001031011063552115');
  32. // const seed = Number(new TextEncodingPolyfill.TextEncoder().encode(ShareConfig.securityKey).join(''));
  33. var dict = new Array(256);
  34. for (var i = 0; i < 256; i++) {
  35. var temp = dict[i] || i;
  36. var rand = (seed % (i + 1) + i) % 256;
  37. dict[i] = dict[rand] || rand;
  38. dict[rand] = temp;
  39. }
  40. if (size > 256) {
  41. return Security.repeatArray(dict, size);
  42. }
  43. else {
  44. return dict;
  45. }
  46. };
  47. Security.byteIn = function (keyMap, val, index) {
  48. for (var i = 0; i < keyMap.length; i++) {
  49. if (keyMap[i] === val)
  50. return (i + keyMap[index]) % 256;
  51. }
  52. return 0;
  53. };
  54. Security.byteOut = function (keyMap, val, index) {
  55. var diff = val - keyMap[index];
  56. return keyMap[(diff < 0) ? 256 + diff : diff];
  57. };
  58. /** 加密 */
  59. Security.encrypt = function (buf) {
  60. return buf.map(Security.byteIn.bind(null, Security.mapKey(buf.length)));
  61. };
  62. /** 解密 */
  63. Security.decrypt = function (buf) {
  64. return buf.map(Security.byteOut.bind(null, Security.mapKey(buf.length)));
  65. };
  66. return Security;
  67. }());
  68. exports.Security = Security;
  69. cc._RF.pop();
  70. }
  71. if (nodeEnv) {
  72. __define(__module.exports, __require, __module);
  73. }
  74. else {
  75. __quick_compile_project__.registerModuleFunc(__filename, function () {
  76. __define(__module.exports, __require, __module);
  77. });
  78. }
  79. })();
  80. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvbmV0d29yay9TZWN1cml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxvREFBb0Q7QUFDcEQsYUFBYTtBQUNiO0lBQUE7SUFvREEsQ0FBQztJQWxEVSxvQkFBVyxHQUFsQixVQUFtQixHQUFrQixFQUFFLElBQVk7UUFDL0MsSUFBSSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUTtRQUN6QyxPQUFPLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFO1lBQ2hDLGdDQUFnQztZQUNoQyxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWTtJQUNyRCxDQUFDO0lBRU0sZUFBTSxHQUFiLFVBQWMsSUFBWTtRQUV0QixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN6RCx3R0FBd0c7UUFDeEcsSUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLElBQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ1osT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFTSxlQUFNLEdBQWIsVUFBYyxNQUFxQixFQUFFLEdBQVcsRUFBRSxLQUFhO1FBQzNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUc7Z0JBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDM0Q7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxnQkFBTyxHQUFkLFVBQWUsTUFBcUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtRQUM1RCxJQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUztJQUNGLGdCQUFPLEdBQWQsVUFBZSxHQUFlO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxTQUFTO0lBQ0YsZ0JBQU8sR0FBZCxVQUFlLEdBQWU7UUFDMUIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNMLGVBQUM7QUFBRCxDQXBEQSxBQW9EQyxJQUFBO0FBcERZLDRCQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5pbXBvcnQgeyBTaGFyZUNvbmZpZyB9IGZyb20gJy4vU2hhcmVDb25maWcnO1xyXG4vLyBpbXBvcnQgVGV4dEVuY29kaW5nUG9seWZpbGwgZnJvbSAndGV4dC1lbmNvZGluZyc7XHJcbi8qKiDmlbDmja7kvKDovpPliqDlr4YgKi9cclxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5IHtcclxuXHJcbiAgICBzdGF0aWMgcmVwZWF0QXJyYXkoYXJyOiBBcnJheTxudW1iZXI+LCBzaXplOiBudW1iZXIpOiBBcnJheTxudW1iZXI+IHtcclxuICAgICAgICBsZXQgcmVwZWF0ZWRBcnJheSA9IGFyci5zbGljZSgpOyAvLyDlpI3liLbljp/mlbDnu4RcclxuICAgICAgICB3aGlsZSAocmVwZWF0ZWRBcnJheS5sZW5ndGggPCBzaXplKSB7XHJcbiAgICAgICAgICAgIC8vIOWmguaenOaVsOe7hOmVv+W6puWwj+S6juaMh+WumuWkp+Wwj++8jOWwseWkjeWItuS4gOS7veWOn+aVsOe7hOWGheWuueW5tui/veWKoOWIsOacq+WwvlxyXG4gICAgICAgICAgICByZXBlYXRlZEFycmF5ID0gcmVwZWF0ZWRBcnJheS5jb25jYXQoYXJyLnNsaWNlKDAsIHNpemUgLSByZXBlYXRlZEFycmF5Lmxlbmd0aCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVwZWF0ZWRBcnJheS5zbGljZSgwLCBzaXplKTsgLy8g6L+U5Zue5oyH5a6a6ZW/5bqm55qE5pWw57uEXHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1hcEtleShzaXplOiBudW1iZXIpOiBBcnJheTxudW1iZXI+IHtcclxuXHJcbiAgICAgICAgY29uc3Qgc2VlZCA9IE51bWJlcignOTA1MDEwNDEwMDM4NDIxMDAxMDMxMDExMDYzNTUyMTE1Jyk7XHJcbiAgICAgICAgLy8gY29uc3Qgc2VlZCA9IE51bWJlcihuZXcgVGV4dEVuY29kaW5nUG9seWZpbGwuVGV4dEVuY29kZXIoKS5lbmNvZGUoU2hhcmVDb25maWcuc2VjdXJpdHlLZXkpLmpvaW4oJycpKTtcclxuICAgICAgICBjb25zdCBkaWN0ID0gbmV3IEFycmF5KDI1Nik7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjU2OyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgdGVtcCA9IGRpY3RbaV0gfHwgaTtcclxuICAgICAgICAgICAgY29uc3QgcmFuZCA9IChzZWVkICUgKGkgKyAxKSArIGkpICUgMjU2O1xyXG4gICAgICAgICAgICBkaWN0W2ldID0gZGljdFtyYW5kXSB8fCByYW5kO1xyXG4gICAgICAgICAgICBkaWN0W3JhbmRdID0gdGVtcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzaXplID4gMjU2KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTZWN1cml0eS5yZXBlYXRBcnJheShkaWN0LCBzaXplKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZGljdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGJ5dGVJbihrZXlNYXA6IEFycmF5PG51bWJlcj4sIHZhbDogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleU1hcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoa2V5TWFwW2ldID09PSB2YWwpIHJldHVybiAoaSArIGtleU1hcFtpbmRleF0pICUgMjU2O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYnl0ZU91dChrZXlNYXA6IEFycmF5PG51bWJlcj4sIHZhbDogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBkaWZmID0gdmFsIC0ga2V5TWFwW2luZGV4XTtcclxuICAgICAgICByZXR1cm4ga2V5TWFwWyhkaWZmIDwgMCkgPyAyNTYgKyBkaWZmIDogZGlmZl07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIOWKoOWvhiAqL1xyXG4gICAgc3RhdGljIGVuY3J5cHQoYnVmOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICAgICAgcmV0dXJuIGJ1Zi5tYXAoU2VjdXJpdHkuYnl0ZUluLmJpbmQobnVsbCwgU2VjdXJpdHkubWFwS2V5KGJ1Zi5sZW5ndGgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIOino+WvhiAqL1xyXG4gICAgc3RhdGljIGRlY3J5cHQoYnVmOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICAgICAgcmV0dXJuIGJ1Zi5tYXAoU2VjdXJpdHkuYnl0ZU91dC5iaW5kKG51bGwsIFNlY3VyaXR5Lm1hcEtleShidWYubGVuZ3RoKSkpO1xyXG4gICAgfVxyXG59Il19