工具用的順手嗎?
你的回饋能幫助我們做得更好
對JavaScript程式碼進行混淆,隱藏原始邏輯,防止程式碼被逆向修改。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
這個 JavaScript 文字轉換器可將程式碼中的一般字串改寫成十六進位或 Unicode 轉義,也能把字串集中到陣列,再用索引取回;另一種模式則把整段原始碼轉成 Base64,產生以 eval 解碼執行的包裝文字。另可選擇移除註解或整理空白。輸入是 JavaScript 原始碼文字,輸出仍是 JavaScript 文字,可複製或下載。
搜尋「JavaScript 混淆器」時,常見期待還包含變數重新命名、控制流程改寫等更完整的混淆。此頁提供的是特定字串表示與文字整理方式,不包含那些轉換,也不會分析程式結構或驗證輸出正確性。改變程式碼外觀只會增加直接閱讀的阻力,不能當成加密或防止逆向的保證。
\x48\x69 的轉義表示。\u 後接十六進位碼的形式呈現字串字元。eval 呼叫。Base64 是可逆編碼,不是加密。十六進位與 Unicode 模式只改寫工具辨識到的單引號、雙引號字串;模板字面值、註解和正規表示式會保留原樣。這些差異會影響「看起來有變化」的範圍,不代表語意檢查或防護強度。
指南
依步驟完成操作,並透過範例核對輸入與結果。
在輸入區貼上或輸入 JavaScript,也可載入頁面範例。先選擇不含密鑰、令牌、個資或客戶資料的短片段。
選一種模式觀察差異。十六進位或 Unicode 適合查看字串轉義;字串陣列會加入陣列與索引函式;Base64 + eval 則會包裝整段程式。一次只切換一項,較容易找出問題來源。
依需要開啟「去除註解」或「壓縮空白與換行」。壓縮空白會逐行修整空格、刪除空白行並保留非空行分隔,並非完整的 JavaScript 最小化器。
檢視輸出後使用複製或下載,再到隔離的測試環境執行;比較原始版本與轉換版本的功能、錯誤訊息及目標瀏覽器表現。
例如輸入 const greeting = "Hi";,十六進位模式會把字串內容呈現為跳脫字元;變數 greeting 本身不會因此改名。請勿把這類示例推論成所有程式語法都能安全轉換。
情境
查看這項工具在不同工作與生活流程中的用法。
教師或學習者可用無敏感資訊的小型函式比較字串原文、十六進位轉義與 Unicode 轉義,說明執行內容相近時,原始碼文字仍可有不同表示。
前端開發者可在測試副本中查看字串陣列或 Base64 包裝後的外觀,並實際檢查專案相依性與瀏覽器政策。它適合做轉換實驗,不應取代正式建置流程或完整混淆器。
分析人員可用自有、已審查且不含敏感資料的程式片段示範編碼後的字串形式;輸出不會判斷程式是否惡意,也不是安全掃描結果。
問答
集中解答常見疑問與容易混淆的問題。
不能保證。字串轉義可直接閱讀或還原,Base64 更是可逆編碼;本工具不改名變數、不改寫控制流程,也沒有密鑰式保密機制。不要把機密放進會交付到瀏覽器的程式碼。
轉換器以文字方式辨識部分字串和註解,並非完整 JavaScript 語法解析器;模板字面值不在字串轉換範圍內,註解與正規表示式也可能影響純文字處理。請先用短片段逐項排查模式和選項,再在實際目標環境驗證。
不一定。該模式會把文字交給 eval 執行,受內容安全政策限制,也會執行字串中的程式。只處理並執行自己信任、已檢查的程式碼,並確認網站政策與部署環境允許此作法。
不是。它按行整理空格與空白行,不會像語法感知的建置工具一樣分析整體程式結構、識別所有可移除空白,或驗證輸出功能相同。
須知
使用前了解適用範圍、結果限制與必要提醒。
請保存未轉換的原始檔,並在目標執行環境測試輸出。這裡的轉換不保證語法完整、行為等價或相容於所有瀏覽器和 JavaScript 語法,也不提供密碼學保護。移除註解可能刪掉授權聲明、建置標記或其他工具鏈依賴的註記;上線前確認專案要求仍被滿足。
Base64 + eval 模式會生成動態執行程式碼。不要執行來路不明的輸入;對自有程式碼也應先審查,再於隔離環境驗證。若正式環境採用限制動態程式碼的內容安全政策,這種輸出可能無法執行。把敏感邏輯移至適當的伺服器端存取控制,不能以混淆代替。
推薦
查找相關工具、專題與可用的 API 能力。