總覽

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

接下來看什麼

  • 安裝——環境需求、可選的編譯強檔擴充套件、升級方式。
  • 加密程式碼——protect/run、有效期、二因子鎖、便攜檔。
  • 加密模型與資源——protect-modelbootstrap()open_model()
  • 編譯強檔——magiclock build、自動逐模組閘門、你能出貨什麼。
  • 帳號與啟用——零設定啟用、CI、離線行為、撤銷。
  • CLI 參考Python API 參考——每個指令、參數與函式簽章。
  • 安全模型——執行期閘門實際檢查了什麼,以及它誠實的能力邊界。