理想的“混淆|加密”应该具有以下特点: 1、没有确定的破解模式; 2、很难编制自动破解程序(只能手工破解); 3、破解过程繁琐、耗时; 4、“混淆|加密”后的代码,比原始代码长度增加少; 一些“混淆|加密”技巧: 1、去除缩进、空行、换行、注释 2、变量名替换 替换方式大概有“缩短”和“改乱”这两种 3、通过自定义变量名引用JS关键字 4、通过添加大段大段的空白,把代码前后间隔的很长,从而干扰阅读。 这里添加的空白一般是\x00,而不是通常所谓的“空格”(\x20)。 5、混眼法 有两种: 一种是通过利用[\]和["、']及变量定义语句来添加与代码功能无关的字符; 另一种就是增添与代码功能无关的运算语句。 6、对原代码进行加密,同时附上解密的代码 运行时先解密,然后通过document.write()或eval()或innerHTML把代码释放出来执行。 7、利用运算的起承转合来混淆代码 就是通过花哨复杂的对象引用方式和判断方式来迷惑人。 理想的“混淆|加密”应该具有以下目的: 1.保护代码的版权; 2.保护算法; 3.保护数据资料; 4.保护文本、URL等形式的资源 HTML Guard http://news.onlinedown.net/info/2753-1.htm 大致是第1、4类,还有些其他功能(网页防盗)。比较弱。 window["document"]["write"](888); 等价于: