js压缩、js混淆、js加密,有什么不同?
js压缩,目的是让js代码变的体积变小。
比如,去除注释、去除回车换行、把长变量名变短,甚至去除未使用的代码。
常用的js压缩工具,推荐:Uglifyjs
“混淆”是个外来词,来自英文:Obfuscate,是将js代码转换成功能相同,但是难于阅读和理解的代码形式。
比如:数字1可转化成0x4cfee^0x4cfef;
比如:true可转化成!![];
比如:1+1,可转化成:function(s,h){return s+h;}(210172^210173,522441^522440),等等。
js加密,与js混淆的界限是比较模糊的,js加密也是将js代码变的难以理解,但js加密从名称上理解的话,它更测重于用加密算法对数据进行保护。
比如:用base64可逆算法,对字符串进行加密;
比如:用escape对代码进行加密,等等。
JS混淆加密目的是让js代码更安全,防止被他人分析、修改等,也可用于小游戏过审等场合。js混淆加密工具,推荐:JShaman
如果既想保护js代码,又想压缩体积,那么两种工具是可以同时使用的,但使用顺序需要注意,要先混淆加密,再压缩体积。