工具用的順手嗎?
你的回饋能幫助我們做得更好
在瀏覽器中壓縮並混淆 Python 原始碼,可依需求處理全域名稱與型別註解。
目前帳號單檔上限 1 MB(訪客 1 MB / 一般會員 2 MB / 進階會員 5 MB / 專業會員 20 MB)
選項
本機處理:Pyodide 與 Python-Minifier 在瀏覽器執行,原始碼不會離開此裝置。首次使用會從 jsDelivr 載入約 10 MB 的 Python WebAssembly 執行階段和混淆器。
混淆不是加密。動態存取的全域名稱預設不改名;只有確認程式碼不依賴反射等機制後,再啟用全域改名。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
Python 混淆通常會縮短識別名稱、移除不影響執行的空白或註解,讓原始碼較難快速閱讀。本工具在瀏覽器處理單一 Python 原始檔,並輸出可下載的 .py。它不是編譯器,不會把程式轉成原生機器碼;處理後仍然是 Python 原始碼。
縮短區域變數名稱適用於函式內的暫存名稱。更改全域名稱可能影響模組匯出、反射、動態匯入、序列化、框架註冊與跨檔案引用,因此預設關閉;移除型別註解也可能影響執行時讀取註解的框架。混淆只會提高靜態閱讀成本,不提供加密或強制存取控制。
指南
依步驟完成操作,並透過範例核對輸入與結果。
輸入 Python 程式碼,或選擇一個 .py 檔。先確認原始碼可由目標 Python 環境解析;語法錯誤、反編譯殘片或不完整程式碼可能無法處理。
區域變數改名通常影響範圍較小。如果專案會以字串查找區域名稱、依賴偵錯器顯示名稱或特殊反射行為,請實際執行輸出結果驗證。
先保留公開函式、類別、模組入口、外掛鍵名和序列化欄位。確定要啟用全域改名時,請把外部引用名稱加入保留清單,並確認其他檔案的匯入約定。
查看轉換後程式碼和輸入/輸出字元數,特別檢查裝飾器、註解、動態屬性存取及錯誤處理。輸出請另存新檔,不要覆蓋唯一原件;並在目標環境執行回歸檢查。
情境
查看這項工具在不同工作與生活流程中的用法。
課程作者或技術支援可縮減示範腳本的空白並縮短區域變數名稱,再以較精簡的附件提供範例。
團隊可對不含敏感金鑰的單檔程式降低可讀性,同時保留已確認的公開入口名稱,並透過執行檢查確認符合需求。
需要把較長程式放入工單、文件或程式片段時,可用壓縮輸出減少多餘空白;這只改變呈現形式,不保證專案封裝或執行時間明顯縮小。
問答
集中解答常見疑問與容易混淆的問題。
原始碼可能已經很精簡,或安全規則判斷名稱不適合改動,因此輸出差異有限。區域名稱只會在可確認的作用範圍內縮短,優先維持語法與引用關係。
不能一概而論。反射、動態匯入、序列化、框架回呼和跨檔案引用都可能依賴固定名稱。只在能掌握所有引用時才考慮全域改名,並先保留外部介面與字串約定。
型別註解多半提供靜態工具使用,但部分框架會在執行時讀取註解以建立參數驗證、依賴注入或命令列介面。啟用前先確認專案用法,並檢查相關功能。
不能。輸出仍是 Python 原始碼,取得檔案的人仍能分析或重新格式化。混淆只是提高快速閱讀成本,不可取代金鑰管理、伺服器授權或存取控制。
須知
使用前了解適用範圍、結果限制與必要提醒。
動態執行程式碼、透過 getattr 或字串反射查找名稱、外掛系統、裝飾器及序列化框架,都可能依賴原始碼識別名稱。Python 版本和語法特性也會影響解析能力。完成混淆後,應在實際解譯器與相依環境執行關鍵流程,並保留原始版本以便還原。
原始碼會在本機瀏覽器中處理,不會作為混淆輸入上傳到雲端;首次使用會載入 Python WebAssembly 執行環境及混淆器資源。請確認靜態資源可正常存取。不要把此工具視為加密、授權檢查或阻止專業逆向的安全措施。
推薦
查找相關工具、專題與可用的 API 能力。