CNode

JS代码混淆用哪种工具比较好?附一段奇怪的混淆代码

问答
Cchapgaga发布于8 年前最后回复8 年前9 回复6819 浏览0 收藏

之前用过的混淆,只是把多个文件编译成一个文件,去掉空格,变量名变短。 下面这段,有点看不懂了。

enabled: !0,是什么意思? 这不是等价于enabled:true么,为何要写成enabled: !0?这是JS混淆工具干的么?

什么JS混淆能生成*** enabled: !0*** 这样的代码呢?

					var e = {
						enabled: !0,
						configMode: 0,
						debug: !1,
						logLevel: 0,
						showFixedSrc: !1,
					}
查看回复

回复 (9)

D
dislido#1·8 年前

!0两个字符,true四个字符。 还有一个类似的压缩是Infinity === 1/0

L
leemove#3·8 年前
引用 hejiaoshou@dislido 这样说那1和0只是一个字符

1和0不是Number类型吗...!0是布尔类型.

H
hyj1991#4·8 年前

!0 === true,而 1 !== true,转换成 !0 / !1 是恒等变换,1 和 0 则有可能出问题,比如:

if(e.enable === true){
}

这种判断,1 和 0 就和原来的产生歧义了

R
ResJay#6·8 年前
引用 chapgaga@dislido !0的性能会比true高么?

@chapgaga !0比true 高 因为true4个字符 还占空间

C
chapgaga#7·8 年前
引用 ResJay@chapgaga !0比true 高 因为true4个字符 还占空间

@ResJay 字节少,性能会高一些?

R
ResJay#8·8 年前
引用 chapgaga@ResJay 字节少,性能会高一些?

@chapgaga 对 如果要更高的话 以后还可以写01010101010101010101跳过编译过程性能更高

参与回复
登录后即可参与回复。登录