UglifyJS 和JShaman相比有什么不同?
UglifyJS 和JShaman相比有什么不同?
- UglifyJS主要功能是压缩JS代码 , 减小代码体积;
- JShaman是专门用于对JS代码混淆加密 , 目的是让JS代码变的不可读、混淆功能逻辑、加密代码中的隐秘数据或字符 , 是用于代码保护的 。
用实例演示两者差别:
例程 , 文件名:example.js , 代码:
var x = {
baz_: 0,
foo_: 1,
calc: function() {
return this.foo_ + this.baz_;
}
};
x.bar_ = 2;
x["baz_"] = 3;console.log(x.calc());【UglifyJS 和JShaman相比有什么不同?】用UglifyJS进行压缩 , 命令:
uglifyjs example.js -c -m --mangle-props-c表示启用压缩功能
-m表示启用混淆功能

文章插图
可以得到如下结果:
var x={o:0,_:1,l:function(){return this._+this.o}};x.t=2,x.o=3,console.log(x.l());
可见 , uglifyjs去除了回车换行、将长变量名变成了短变量名 , 这样当然就达到了压缩的效果 , 但阅读代码不受影响 , 功能逻辑还是很清晰的 。
用JShaman对代码进行混淆加密:

文章插图
得到的将是无法阅读的混乱代码:

文章插图
当然 , 无论是用UglifyJS进行压缩混淆 , 还是用JShaman进行混淆加密 , 都不会影响代码的正常使用 。
推荐阅读
- CPU眼里的:堆和栈
- 一个很强大,但用在接口参数和返回结果,会造成灾难性后果的C#语法
- 你每天用来打卡的钉钉,居然藏着「ChatGPT」「Midjourney」和「Notion」
- Web和云开发,Rust会起飞?
- 这一次,再多的名和利也救不了李连杰
- 如何区分和田玉和石头
- 私生活混乱?这一次,无论多少的名和利都救不了65岁的赵本山
- 丧夫2个多月,毕夏高调庆32岁生日,和汪峰大笑比V引争议!
- 五行取名带木和火男孩
- 海竿的使用方法和视频 海竿的使用方法