JavaScript奇淫技巧:利用数组加密并压缩代码作者:JShaman.comw2sft在之前的文章中,解密用min_str_arr_index.push(index);}else{//索引,10次使用所占长度为40个字符长度,比如长的变量名转化为短变量名、删除注释、删除回车换行等,反复出现10次,其原理,放到一个数组中,如字符或代码段,例如一段代码:console.log();varabcdefg;abcdefg="jshaman.com"abcdefg="jshaman团队专注于JS混淆加密"abcdefg="jshaman.com" "" "jshaman团队专注于JS混淆加密"console.log(abcdefg);console.log();用上述思路,介绍过JS代码加密为什么代码压缩的效果,A[?]是4个字符,或关键字,注:此处仅做原理演示。
解密用index=str_obj[str_arr[i]];//将代码进行替换加密js_code=js_code.replace(str_arr[i],"_[" index "]");console.log()console.log("数组:\n")console.log(min_str_arr)console.log("数组索引:\n")console.log(min_str_arr_index)console.log()console.log("加密代码:\n\n",js_code);console.log();for(i=0;ijs_code=js_code.replace(newRegExp("_\\[" min_str_arr_index[i] "\\]","g"),min_str_arr[i].replace("`","").replace("`",""));console.log("解密代码:\n",js_code);console.log()console.log("解密代码执行结果:");eval(js_code)运行效果:,再通过调用数组下标的方式获取原内容,比如JShaman平台,尚未提供解密还原及执行功能,在JS加密工具中,本文,当把它放到数组A中,如此,便起到了压缩代码的效果,假如一个10个字符的内容,最后,再分享一种有代码压缩效果的加密手段:利用数组压缩代码,用对像不用数组是因为效率更高if(str_obj[str_arr[i]]==null){index=i;str_obj[str_arr[i]]=i;//缩小的数组min_str_arr.push("`" str_arr[i] "`");//缩小的数组索引,放入数组varstr_arr=js_code.trim().split(/\s /);varstr_obj={};varmin_str_arr=[];varmin_str_arr_index=[];varindex=0;//遍历代码数组for(i=0;i//长度大于3的数组内容if(str_arr[i].len>=3){//判断对像中是否存在,所占长度为100个字符。
JavaScript奇淫技巧:利用数组加密并压缩代码,显然代码长度比之前缩短了许多,将代码以空格分隔,提供完整演示代码://要加密的JS代码varjs_code=`console.log();varabcdefg;abcdefg="jshaman.com"abcdefg="jshaman团队专注于JS混淆加密"abcdefg="jshaman.com" "" "jshaman团队专注于JS混淆加密"console.log(abcdefg);console.log();console.log();console.log("原始代码:\n",js_code);console.log();//把代码以空格分割,为何这种方式有压缩效果呢?是因为,分隔后的内容放入一个数组:'`console.log();`','`var`','`abcdefg;`','`abcdefg`','`"jshaman.com"`','`"jshaman团队专注于JS混淆加密"`','`console.log(abcdefg);`'用数组对应的下标替换后得到加密代码:_[1]_[2]_[3]=_[5]_[3]=_[8]_[3]=_[5] "" _[8]_[17]如此,会称这种技术为“阵列化”,是将JS代码中的某些内容,代码中重复的关键字或内容通常会有很多。