本来想给字符串做个加密的, 后面发现有些代码不太兼容这个写法
在这里贴出代码, 方便大家手动加密吧
也可以写个简单的浏览器 snip 小代码到浏览器使用, 逻辑差不多
/**
* 异或加密代码里面的字符串内容(为了防止一些问题, 不加密 ``里面的字符串)
* @param {*} postStr
* @param {*} encodeKey 9527
* @return
*/
function replace_encode_string(postStr, encodeKey = 9527) {
/**
* 字符串加密
* 加解密代码逻辑-加密
* @param {*} postCoddingStr 字符串代码格式
* @returns 加密的字符串版本
*/
function encodeJSstring(postCoddingStr) {
postCoddingStr = postCoddingStr.toString();
var getASCIIarr = [];
for (var cStr = 0; cStr < postCoddingStr.length; cStr++) {
getASCIIarr.push(postCoddingStr.charCodeAt(cStr) ^ encodeKey);
};
return getASCIIarr.join(',');
};
// /**
// * 加解密代码逻辑-解密
// * @param {*} postCoddingStr 加密的 ASCII 组合的字符串
// * @returns 解密的字符串(代码的原来样式)
// */
// function decodeJSstring(postCoddingStr) {
// var getEnCodeArr = postCoddingStr.split(",");
// var getASCIIarr = [];
// for (var decStr = 0; decStr < getEnCodeArr.length; decStr++) {
// getASCIIarr.push(String.fromCharCode(Number(getEnCodeArr[decStr]) ^ encodeKey));
// };
// return getASCIIarr.join('');
// };
// 用来解密的
var decode_ascii_str = `;function xor_de_d(s) { var a = s.split(","), r = []; for (var e = 0; e < a.length; e++) { r.push(String.fromCharCode(Number(a[e]) ^ ${encodeKey})); }; return r.join(""); };`;
if (postStr.match(/`(.*)`/)) {
console.log("[CC][混淆] 目前不支持加密 `` 之间的字符串!");
} else if (postStr) {
// 转换一下, 防止有什么非字符串出现
postStr = postStr.toString();
// 正则匹配内容
var matArr_1 = [], matArr_2 = [], matArr_End = [];
// matArr_1 = postStr.match(/'(.*)'/g) || [];
// matArr_2 = postStr.match(/"(.*)"/g) || [];
matArr_End = postStr.match(/"(?:\\.|[^"])*"|'(?:\\.|[^'])*'/g) || [];
// Fs.writeFileSync("已匹配到字符串.filePath" + ".txt", matArr_End.join(""));
console.log("已匹配到字符串=>", [matArr_End.length]);
// 开始加密
// for (var ii = 0; ii < matArr_1.length; ii++) {
// postStr = postStr.replace(matArr_1[ii], "xor_de_d('" + encodeJSstring(matArr_1[ii]) + "')");
// };
// for (var jj = 0; jj < matArr_2.length; jj++) {
// postStr = postStr.replace(matArr_2[jj], "xor_de_d('" + encodeJSstring(matArr_2[jj]) + "')");
// };
for (var kk = 0; kk < matArr_End.length; kk++) {
postStr = postStr.replace(matArr_End[kk], "xor_de_d('" + encodeJSstring(matArr_End[kk]) + "')");
};
// 载入解密函数
if (matArr_1.length > 0 || matArr_2.length > 0 || matArr_End.length > 0) {
postStr = decode_ascii_str + postStr;
};
};
return postStr;
};