快捷搜索:  汽车  科技

js是怎样加密的(什么情况下不能使用全局变量)

js是怎样加密的(什么情况下不能使用全局变量)则加密后的代码运行会出现异常:但如果加密时选择了全局函数和变量加密:配置中,不使用全局变量、全局函数加密:得到加密代码如下:这时全局变量b,全局函数msg都保留了。保护后的代码运行正常。

JS代码加密时,什么情况下不能使用全局变量、函数名加密?

在进行JavaScript代码混淆加密时,常会用到变量名、函数名混淆加密。

例如以下代码:

js是怎样加密的(什么情况下不能使用全局变量)(1)

使用JShaman进行JS代码混淆加密:

js是怎样加密的(什么情况下不能使用全局变量)(2)

配置中,不使用全局变量、全局函数加密:

js是怎样加密的(什么情况下不能使用全局变量)(3)

得到加密代码如下:

js是怎样加密的(什么情况下不能使用全局变量)(4)

这时全局变量b,全局函数msg都保留了。保护后的代码运行正常。

但如果加密时选择了全局函数和变量加密:

js是怎样加密的(什么情况下不能使用全局变量)(5)

则加密后的代码运行会出现异常:

js是怎样加密的(什么情况下不能使用全局变量)(6)

js是怎样加密的(什么情况下不能使用全局变量)(7)

运行异常的原因是:JS代码块的外部,有click事件代码,会调用全局变量和函数,如下图:

js是怎样加密的(什么情况下不能使用全局变量)(8)

总结而言:

如果代码中的全局函数、全局变量,在代码块或文件之外的地方有调用或赋值。则不可以使用全局变量、全局函数加密。

除此之外,都可以使用全局变量、函数加密。

例如:

js是怎样加密的(什么情况下不能使用全局变量)(9)

js是怎样加密的(什么情况下不能使用全局变量)(10)

保护后,全局变量b,全局函数msg都已不见,但运行完全不受影响,如下图:

js是怎样加密的(什么情况下不能使用全局变量)(11)

注:在JS混淆加密中,变量名加密、函数名加密,是绝对不可逆的操作,绝不可还原,能很大程度上提高代码安全性。因此:推荐使用。

猜您喜欢: