兩款頂級JavaScript混淆工具測評:JScrambler和JShaman
出于JavaScript代碼安全需求,JavaScript混淆已經被廣泛使用。在這個領域中,有免費的小工具,也有專業、商業級的產品。
商業產品在功能強度、保護效果、穩定性等各方面都是全優于免費小工具的。
本文將對兩款專業、商業JavaScript混淆工具進行多角度測評。
這兩款工具分別是葡萄牙的JScrambler和中國的JShaman,在行業中都是知名產品、是業內頂級的JavaScript混淆工具。
注:JShaman有中文和英文兩個不同版本,本次測評使用的是英文版。
產品形態
兩者都是網站平臺形式,在瀏覽器中打開就能使用。
接口
都有Web API接口,JavaScript、Python、Java、c#等語言都可以調用,可以集成在自己的產品中使用。
操作便捷性
JScrambler使用較復雜,需要注冊賬戶、登錄進入后臺才能使用,JShaman則方便很多,無需注冊、直接使用。
免費試用
兩個產品都提供有限制的免費試用,JScrambler混淆后的代碼有使用時間限制,JShaman是對試用JavaScript代碼體積有限制。
功能選項
JScrambler和JShaman都有20多項混淆功能可使用,如:數值加密、平展控制流、JSON加密、變量名混淆、正則表達式加密、字符串加密等等。也就意味著,兩者對代碼的保護強度應該接近,因為混淆選項數量接近。
對于各功能的說明,JShaman是采用例程的方式展示,而JScrambler是文字說明。對于不熟悉混淆技術的使用者而言,JShaman的例程方式更直觀,可以讓使用者知道各功能啟用后對代碼的保護效果。而JScrambler的文字介紹則較抽象。
JScrambler的某些選項可進行高級配置,比變量名混淆可設定具體的變量名特征,而JShaman未提供這種精細化選項。
混淆效果
如前面所述,兩者很多功能選項相似,但也有差別,而且相同功能各自的算法想必也是不同的。所以,相同的JavaScript代碼混淆到的結果自然是不同,各有各的結果。混淆后的代碼看起來都足夠復雜,都可以進行復制和下載。
報表
報表功能用于展示混淆時進行了哪些操作,可讓操作者清楚混淆操作對代碼進行了哪些方面的加強和保護。
JShaman的報表簡潔明了,在混淆完成后會立即顯示。JScrambler的報表是從歷史操作記錄中查看,顯示的內容更詳細。
兩者都會顯示進行各項混淆時操作了多少節點(注:混淆時都是將JavaScript轉化為AST抽象語法樹,對語法樹進行修改,所以此處會顯示修改的AST節點數量)。
JScrambler會顯示各項操作使代碼增大了多少,而JShaman會顯示混淆前代碼整體有多少個節點,混淆后又變成了多少節點,方式有差別,所表達的含義相同。
總結
兩者功能相似、混淆效果接近,都是強大、專業的JavaScript混淆工具。
直觀差別主要在UI、操作、報表三方面。
JScrambler精細且復雜、商業味道更濃厚。
JShaman界面優美、操作簡潔、方便易用。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.