一份相同的JAVAScript代码,进行多次混淆加密,能得到不同的结果吗?
答案是肯定的,能。
JShaman可以实现这个效果。即:加密结果具有多态性、变化性。
下面实测展示。
来到JShaman网站,用它默认的示例代码做测试,如下图所示。
配置也使用默认的,如下图所示。
然后进行混淆加密。第一次得到的加密代码如下图。
打开浏览器的开发者工具,在控制台中,将上面的代码用alert的方式显示其代码长度。
代码:alert(`加密后的JS代码`.length + " bytes");
显示如下图,代码长度显示为2898字节。
再混淆一次,又一次得新结果,这次是2817字节,如下图:
再试,又得到3000字节,如下图:
由此可见,同一段JavaScript代码用JShaman混淆加密,会得到不同的新JavaScript加密代码。
这种不同结果的意义是什么呢?
它体现了JavaScript混淆加密的保护强度,多态的结果表明混淆过程中使用了不同的加密算法,所以才生成了不同的加密代码。