diff --git a/docs/api.md b/docs/api.md index d1c43781..44e54a07 100644 --- a/docs/api.md +++ b/docs/api.md @@ -437,6 +437,14 @@ core.utils.unshift(a, b) 向某个数组前插入另一个数组或元素 +core.utils.encodeBase64(str) +Base64加密字符串 + + +core.utils.decodeBase64(str) +Base64解密字符串 + + core.utils.formatBigNumber(x) 大数据的格式化 diff --git a/libs/control.js b/libs/control.js index db1beff0..ed79261d 100644 --- a/libs/control.js +++ b/libs/control.js @@ -315,7 +315,7 @@ control.prototype.startGame = function (hard, callback) { formData.append('name', core.firstData.name); formData.append('version', core.firstData.version); formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":""); - formData.append('hard', LZString.compressToBase64(hard)); + formData.append('hard', core.encodeBase64(hard)); formData.append('hardCode', core.getFlag('hard', 0)); formData.append('base64', 1); diff --git a/libs/core.js b/libs/core.js index 00c37d91..c080e875 100644 --- a/libs/core.js +++ b/libs/core.js @@ -1113,6 +1113,16 @@ core.prototype.subarray = function (a, b) { return core.utils.subarray(a, b); } +////// Base64加密 ////// +core.prototype.encodeBase64 = function (str) { + return core.utils.encodeBase64(str); +} + +////// Base64解密 ////// +core.prototype.decodeBase64 = function (str) { + return core.utils.decodeBase64(str); +} + ////// 生成随机数(seed方法) ////// core.prototype.rand = function (num) { return core.utils.rand(num); diff --git a/libs/events.js b/libs/events.js index 1ec5cc69..c60a3914 100644 --- a/libs/events.js +++ b/libs/events.js @@ -175,9 +175,9 @@ events.prototype.gameOver = function (ending, fromReplay) { formData.append('name', core.firstData.name); formData.append('version', core.firstData.version); formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":""); - formData.append('hard', LZString.compressToBase64(core.status.hard)); - formData.append('username', LZString.compressToBase64(username||"")); - formData.append('ending', LZString.compressToBase64(ending)); + formData.append('hard', core.encodeBase64(core.status.hard)); + formData.append('username', core.encodeBase64(username||"")); + formData.append('ending', core.encodeBase64(ending)); formData.append('lv', core.status.hero.lv); formData.append('hp', Math.min(hp, Math.pow(2, 63))); formData.append('atk', core.status.hero.atk); @@ -1491,7 +1491,7 @@ events.prototype.uploadCurrent = function () { formData.append('name', core.firstData.name); formData.append('version', core.firstData.version); formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":""); - formData.append('hard', LZString.compressToBase64(core.status.hard)); + formData.append('hard', core.encodeBase64(core.status.hard)); formData.append('lv', core.status.hero.lv); formData.append('hp', Math.min(hp, Math.pow(2, 63))); formData.append('atk', core.status.hero.atk); diff --git a/libs/utils.js b/libs/utils.js index b9ef8dd1..58c625a1 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -340,6 +340,20 @@ utils.prototype.subarray = function (a, b) { return na; } +////// Base64加密 ////// +utils.prototype.encodeBase64 = function (str) { + return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) { + return String.fromCharCode(parseInt(p1, 16)) + })) +} + +////// Base64解密 ////// +utils.prototype.decodeBase64 = function (str) { + return decodeURIComponent(atob(str).split('').map(function(c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); +} + utils.prototype.__init_seed = function () { var rand = new Date().getTime()%34834795 + 3534; rand = this.__next_rand(rand);