"use strict"; cc._RF.push(module, 'c8f5flhBAxC46hd+DzswCq9', 'cryptoHelper'); // Scripts/nx/deps/cryptoHelper.js "use strict"; var CryptoJS = require("crypto"); var s_key = null; var CCryptoHelp = { _getKey: function _getKey() { if (!s_key) { s_key = CryptoJS.enc.Utf8.parse("#KLDf*#!32!~kle1"); } return s_key; }, // AES加密 encrypt: function encrypt(str) { if (!str || 0 === str.length) { return ""; } var keyVal = CCryptoHelp._getKey(); var encrypted = CryptoJS.AES.encrypt(str, keyVal, { iv: null, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.ZeroPadding }); return encrypted.toString(); }, // AES解密 decrypt: function decrypt(str) { if (!str || 0 === str.length) { return ""; } var keyVal = CCryptoHelp._getKey(); var decrypt = CryptoJS.AES.decrypt(str, keyVal, { iv: null, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.ZeroPadding }); return CryptoJS.enc.Utf8.stringify(decrypt); // let decryptedStr = decrypt.toString( CryptoJS.enc.Utf8 ); // return decryptedStr.toString(); }, // MD5加密 md5FromString: function md5FromString(str) { if (!str || 0 === str.length) { return ""; } return CryptoJS.MD5(str).toString().toLowerCase(); }, // MD5加密 md5FromBytes: function md5FromBytes(unit8Array) { if (!unit8Array || 0 === unit8Array.length) { return ""; } var str = CryptoJS.enc.Hex.stringify(unit8Array); return CryptoJS.MD5(str).toString().toLowerCase(); }, // 十六进制字符串数组,个数如果不足16整数倍则补0 hexTo16Hex: function hexTo16Hex(str) { var diff = 16 - (str.length + 1) / 3 % 16; for (var i = 0; i < diff; i++) { str = str + " 00"; } return str; }, // 构建WordArray对象 int8parse: function int8parse(u8arr) { var len = u8arr.length; var words = []; for (var i = 0; i < len; i++) { words[i >>> 2] |= (u8arr[i] & 0xff) << 24 - i % 4 * 8; } return CryptoJS.lib.WordArray.create(words, len); }, // 十六进制字符串(空格分割)转成十进制数字的数组 hexStrToDecArray: function hexStrToDecArray(str) { var strArray = str.split(" "); var decArray = []; for (var i = 0; i < strArray.length; i++) { decArray.push(parseInt(strArray[i], 16)); } return CCryptoHelp.arrayTo16Array(decArray); }, // 十进制数组转成十六进制字符串 decArrayToHexStr: function decArrayToHexStr(array) { var hexStr = ""; for (var i = 0; i < array.length; i++) { var str = array[i].toString(16).toUpperCase(); if (str.length < 2) { str = "0" + str; } hexStr = hexStr + str + " "; } return hexStr.substr(0, hexStr.length - 1); }, // word类型的十进制数组转成十六进制字符串 wordArrayToHexStr: function wordArrayToHexStr(array) { var hexStr = ""; for (var i = 0; i < array.length; i++) { var num = array[i]; if (num < 0) { num = array[i] + 0x100000000; } var str = num.toString(16).toUpperCase(); var fullStr = str; if (str.length < 8) { for (var j = 0; j < 8 - str.length; j++) { fullStr = "0" + fullStr; } } hexStr = hexStr + fullStr; } var ret = ""; for (var i = 0; i < hexStr.length; i += 2) { ret = ret + hexStr.substr(i, 2) + " "; } return ret.substr(0, ret.length - 1); }, // 数组元素个数必须是16的整数倍,不足的在后面补0 arrayTo16Array: function arrayTo16Array(array) { var len = array.length; var distLen = parseInt((array.length - 1) / 16) * 16 + 16; for (var i = array.length; i < distLen; i++) { array[i] = 0; } return array; } }; module.exports = CCryptoHelp; cc._RF.pop();