總覽
MagicLock 保護的對象、兩種保護檔位,以及貫穿全部文件反覆出現的核心概念。
MagicLock 是一個命令列工具,也是一套 Python SDK:它會加密你的 Python 原始碼與 AI 模型,用簽章授權將其鎖住,並且每次執行時都完全離線核實這份授權。安裝一個套件、執行一個指令,就能交付。
心智模型
MagicLock 的一切都可以歸結為兩個獨立的問題:保護什麼,以及要多強的保護。
| 保護什麼 | 產物 | 強度 | |
|---|---|---|---|
| 便捷檔 | Python 原始碼(.py) | .pya——import 系統能直接理解的加密閘門容器 | 良好——能阻擋隨手複製;執行期間解密後的位元碼會存在於記憶體中 |
| 編譯強檔 | Python 原始碼,經編譯 | 原生 .so / .pyd,或獨立應用程式目錄 | 更強——不出貨任何明文 Python,授權閘門會自動插入每一個編譯後的模組,而非集中在一處可能被找到並 patch 掉的地方 |
| 模型/資源保護 | 模型、權重、任意二進位資產 | .enc——加密信封 | 兩種檔位皆適用;明文只會短暫存在於記憶體中 |
你可以先用便捷檔在幾分鐘內把保護跑起來,之後再換成編譯強檔——程式碼寫法不需要改變:編譯強檔的閘門是自動插入的,不需要加裝飾器,也不需要手動呼叫 bootstrap()。
核心概念
以下幾個概念會在所有文件中反覆出現:
- 授權(License)——簽發給你帳號的一份簽章授權:允許使用哪些能力、有效期到什麼時候。全程都不需要你親手處理任何金鑰檔案。
- 裝置綁定(機器指紋鎖)——預設情況下,一份授權——以及用它加密的任何產物——都會綁定在啟用它的那台機器上。把加密檔案複製到別的機器,該機器將無法解密。
- 啟用——把一台機器納入你帳號名下的一次性步驟。它已經整合進你第一次呼叫
protect/build的流程裡,正常情況下你幾乎不需要手動執行——見帳號與啟用。 - 能力(Capability)——授權可以授予的一項具名權限(程式碼保護、模型加密等)。執行期閘門與
open_model()各自會檢查自己所需的能力。 - 離線寬限——加密時會向授權伺服器核實;短暫離線時有一個寬限窗口讓你能繼續工作。解密則永遠不需要連網。
- 有效期——一個可選的、獨立於你授權本身的控制項,直接作用在加密產物上,讓它在某個日期或時長之後拒絕解密。
60 秒快速入門
shell
pip install magiclock
# First run: signs you in (opens a browser) and activates this machine,
# then encrypts. Every encrypt after that is instant and non-interactive.
magiclock protect app.py # -> app.pya
# Runs fully offline: no login, no network, ever.
magiclock run app.pya