概览

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

# 首次运行:登录(打开浏览器)+ 激活这台机器,然后加密。
# 之后每次加密都是瞬时完成、无需交互。
magiclock protect app.py            # -> app.pya

# 完全离线运行:永远不需要登录、不需要联网。
magiclock run app.pya

接下来看什么

  • 安装——环境要求、可选的编译强档扩展、升级方式。
  • 加密你的代码——protect/run、有效期、二因子锁、便携档。
  • 加密模型与资源——protect-modelbootstrap()open_model()
  • 编译强档——magiclock build、自动逐模块闸门、你能交付什么。
  • 账号与激活——零配置激活、CI、离线行为、吊销。
  • CLI 速查Python API 参考——每条命令、每个参数、每个函数签名。
  • 安全模型——运行时闸门到底检查了什么,以及它诚实的能力边界。