UglifyJS 和JShaman相比有什么不同?
- UglifyJS主要功能是壓縮JS代碼,減小代碼體積;
- JShaman是專門用于對JS代碼混淆加密,目的是讓JS代碼變的不可讀、混淆功能邏輯、加密代碼中的隱秘?cái)?shù)據(jù)或字符,是用于代碼保護(hù)的。
因此,兩者是完全不同的。只是因?yàn)閁glifyJS也具備些許混淆能力,常常使人們誤以為它也是混淆加密工具。
用實(shí)例演示兩者差別:
例程,文件名: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進(jìn)行壓縮,命令:
uglifyjs example.js -c -m --mangle-props
-c表示啟用壓縮功能
-m表示啟用混淆功能
可以得到如下結(jié)果:
var x={o:0,_:1,l:function(){return this._+this.o}};x.t=2,x.o=3,console.log(x.l());
可見,uglifyjs去除了回車換行、將長變量名變成了短變量名,這樣當(dāng)然就達(dá)到了壓縮的效果,但閱讀代碼不受影響,功能邏輯還是很清晰的。
用JShaman對代碼進(jìn)行混淆加密:
得到的將是無法閱讀的混亂代碼:
當(dāng)然,無論是用UglifyJS進(jìn)行壓縮混淆,還是用JShaman進(jìn)行混淆加密,都不會影響代碼的正常使用。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.