JS代码可以重复进行混淆加密吗?
问题
同一段JS代码,是否可以反复、重复进行混淆加密?
本文,用实验给出答案。
实验过程
准备一段代码,如下:
运行,可以显示出代码执行耗时:
可以看到,大约用时7毫秒、8毫秒。
对这段JS代码进行一次混淆加密:
混淆加密使用的是JShaman,国内专业的JS代码混淆加密工具。
加密后的代码:
比原始代码复杂了很多。
运行:
执行耗时依然是7毫秒、8毫秒,也就是混淆加密后几乎没有造成性能影响。
再对加密后的代码执行多次重复加密:
进行了十次重复加密之后,代码体积达到了81KB:
注:原始代码大小仅为263字节:
计算可知,体积增大了300倍:
而执行耗时,达到了22毫秒、23毫秒,性能下降了约3倍。
如果此时再继续对代码反复反复加密,几十次重复之后,最终,体积会更加膨胀,代码的无法正常执行。
实验结果
1、正常对JS代码进行混淆加密,不会影响性能;体积虽会增大,但在合理、可接受范围内。
2、如果多次重复对JS代码混淆加密,代码量会变的很大、执行性能会受影响,甚至可能出错。
结论
不可以对JS代码重复混淆加密。
任何工具的使用,都需合理、正确的使用。JS代码混淆加密,可以起到保护源码、防止分析、防止非法盗用、防止复制修改的目的,但也需正确使用,重复加密同一段代码是不可行的。