一份相同的JAVAScript代碼,進(jìn)行多次混淆加密,能得到不同的結(jié)果嗎?
答案是肯定的,能。
JShaman可以實(shí)現(xiàn)這個(gè)效果。即:加密結(jié)果具有多態(tài)性、變化性。
下面實(shí)測(cè)展示。
來(lái)到JShaman網(wǎng)站,用它默認(rèn)的示例代碼做測(cè)試,如下圖所示。
配置也使用默認(rèn)的,如下圖所示。
然后進(jìn)行混淆加密。第一次得到的加密代碼如下圖。
打開(kāi)瀏覽器的開(kāi)發(fā)者工具,在控制臺(tái)中,將上面的代碼用alert的方式顯示其代碼長(zhǎng)度。
代碼:alert(`加密后的JS代碼`.length + " bytes");
顯示如下圖,代碼長(zhǎng)度顯示為2898字節(jié)。
再混淆一次,又一次得新結(jié)果,這次是2817字節(jié),如下圖:
再試,又得到3000字節(jié),如下圖:
由此可見(jiàn),同一段JavaScript代碼用JShaman混淆加密,會(huì)得到不同的新JavaScript加密代碼。
這種不同結(jié)果的意義是什么呢?
它體現(xiàn)了JavaScript混淆加密的保護(hù)強(qiáng)度,多態(tài)的結(jié)果表明混淆過(guò)程中使用了不同的加密算法,所以才生成了不同的加密代碼。