JS代码可以重复进行混淆加密吗?

时间:2023-02-23 19:02:03

JS代码可以重复进行混淆加密吗?

问题

同一段JS代码,是否可以反复、重复进行混淆加密?

本文,用实验给出答案。

实验过程

准备一段代码,如下:

JS代码可以重复进行混淆加密吗?

运行,可以显示出代码执行耗时:

JS代码可以重复进行混淆加密吗?

可以看到,大约用时7毫秒、8毫秒。

对这段JS代码进行一次混淆加密:

JS代码可以重复进行混淆加密吗?

混淆加密使用的是JShaman,国内专业的JS代码混淆加密工具。

加密后的代码:

JS代码可以重复进行混淆加密吗?

比原始代码复杂了很多。

运行:

JS代码可以重复进行混淆加密吗?

执行耗时依然是7毫秒、8毫秒,也就是混淆加密后几乎没有造成性能影响。

再对加密后的代码执行多次重复加密:

JS代码可以重复进行混淆加密吗?

进行了十次重复加密之后,代码体积达到了81KB:

JS代码可以重复进行混淆加密吗?

注:原始代码大小仅为263字节:

JS代码可以重复进行混淆加密吗?

计算可知,体积增大了300倍:

JS代码可以重复进行混淆加密吗?

而执行耗时,达到了22毫秒、23毫秒,性能下降了约3倍。

JS代码可以重复进行混淆加密吗?

如果此时再继续对代码反复反复加密,几十次重复之后,最终,体积会更加膨胀,代码的无法正常执行。

实验结果

1、正常对JS代码进行混淆加密,不会影响性能;体积虽会增大,但在合理、可接受范围内。

2、如果多次重复对JS代码混淆加密,代码量会变的很大、执行性能会受影响,甚至可能出错。

结论

不可以对JS代码重复混淆加密。

任何工具的使用,都需合理、正确的使用。JS代码混淆加密,可以起到保护源码、防止分析、防止非法盗用、防止复制修改的目的,但也需正确使用,重复加密同一段代码是不可行的。