js是怎样加密的(什么情况下不能使用全局变量)
js是怎样加密的(什么情况下不能使用全局变量)则加密后的代码运行会出现异常:但如果加密时选择了全局函数和变量加密:配置中,不使用全局变量、全局函数加密:得到加密代码如下:这时全局变量b,全局函数msg都保留了。保护后的代码运行正常。
JS代码加密时,什么情况下不能使用全局变量、函数名加密?
在进行JavaScript代码混淆加密时,常会用到变量名、函数名混淆加密。
例如以下代码:
使用JShaman进行JS代码混淆加密:
配置中,不使用全局变量、全局函数加密:
得到加密代码如下:
这时全局变量b,全局函数msg都保留了。保护后的代码运行正常。
但如果加密时选择了全局函数和变量加密:
则加密后的代码运行会出现异常:
运行异常的原因是:JS代码块的外部,有click事件代码,会调用全局变量和函数,如下图:
总结而言:
如果代码中的全局函数、全局变量,在代码块或文件之外的地方有调用或赋值。则不可以使用全局变量、全局函数加密。
除此之外,都可以使用全局变量、函数加密。
例如:
保护后,全局变量b,全局函数msg都已不见,但运行完全不受影响,如下图:
注:在JS混淆加密中,变量名加密、函数名加密,是绝对不可逆的操作,绝不可还原,能很大程度上提高代码安全性。因此:推荐使用。