JJEncode是一个JS加密工具。在JJEncode加密中,有一个palindrome(回文)功能。如下图:

打开网易新闻 查看精彩图片

它是什么意思,有什么作用呢?

从JJEncode源码中,我们可以看到:

打开网易新闻 查看精彩图片

这段代码的含意,是去除各行语句结尾的“,;”符号,然将代码的每个字符用split、reverse的方式进行逐字反转。

举例说明:

r="console.log(1)";r = r.replace( /[,;]$/, "" );r = "\"\'\\\"+\'+\"," + r + ",\'," + r.split("").reverse().join("") +",\"+\'+\"\\\'\"";console.log(r);

上述代码执行后,会将字符串“console.log(1)”翻转为:

打开网易新闻 查看精彩图片

并且,与加密代码连接到了一起。

加密代码在执行时,这部分是无用的,去除也可正常执行。它仅起到了加密备份的功能。也使代码看起来更加复杂混乱。或者说似乎是增强了加密后的视觉效果。

演示,去除“回文”内容后,执行正常:

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

此外,JJEncode严格的说并不是真正的JS加密,只是一种编码,如果想进行JS加密的同时使用JJEncode,那么建议局部少量JS代码先用JJEncode加密,再用JShaman、JsJiami.online等进行混淆加密。结合使用,JS加密效果更佳。