概览

MagicLock 保护什么、两种保护档位是什么,以及贯穿全部文档的几个核心概念。

MagicLock 是一个命令行工具 + Python SDK:加密你的 Python 源码与 AI 模型,用签名授权把它们锁起来,并且每次运行时都完全离线复核这份授权。安装一个包,跑一条命令,就能交付。

心智模型

MagicLock 的一切都归结为两个独立的问题:保护什么,以及保护得多强

保护什么产物强度
便捷档Python 源码(.py.pya——一个加了闸门的加密容器,import 系统能直接理解较好——挡住随手查看源码;默认便携(加 --bind-machine 才能阻止跨机器拷贝);运行期间解密后的字节码会存在于内存中
编译强档Python 源码,编译后原生 .so / .pyd,或一个独立的应用目录更强——不出货任何明文 Python,授权闸门会自动插入每一个编译后的模块,而不是集中在一处可以被找到并 patch 掉的地方
模型/资源保护模型、权重、任意二进制资源.enc——一个加密信封两档都适用;明文只会短暂存在于内存中

你可以先用便捷档在几分钟内把保护跑起来,之后再切到编译强档——代码写法不用变:编译强档的闸门是自动插入的,不需要加装饰器,也不需要手动调用 bootstrap()

核心概念

以下几个概念会在全部文档中反复出现:

  • 授权(License)——签发给你账号的一份签名凭证:允许使用哪些能力、有效期到什么时候。全程无需你手动处理任何密钥文件。
  • 保护级别——每条加密命令都会选定五档保护级别之一。默认是免密钥便携:产物在任何装了 magiclock 的机器上都能透明解密——方便、可自由分发,但只是混淆级保护。--passphrase--emit-key 会加上一个便携密钥/口令;--bind-machine 则把它绑定到设备(机器指纹锁)。
  • 设备绑定(机器指纹锁)——加上 --bind-machine 后,产物会绑定在加密它的那台已激活机器上。把加密文件拷到别的机器,那台机器解不开。再叠加 --passphrase 就是二因子锁。
  • 激活——把一台机器纳入你账号名下的一次性步骤。它已经折叠进你第一次调用 protect/build 的流程里,正常情况下你几乎不会手动执行它——见账号与激活
  • 能力(Capability)——授权可以授予的一项具名权限(代码保护、模型加密等)。运行时闸门与 open_model() 各自检查自己需要的那项能力。
  • 打包要联网,运行不用——加密时每次都会与授权服务器复核,因此需要网络连接。解密则永远不需要联网。
  • 有效期——一个可选的、独立于你的授权本身的控制项,直接作用在加密产物上,让它在某个日期或时长之后拒绝解密。

60 秒快速上手

shell
pip install magiclock

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

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

想让 AI agent 帮你做?

如果你在用 Claude Code 之类的 AI coding agent,跑一次 magiclock skill——它会往项目里装一份 skill(.claude/skills/magiclock-protect/SKILL.md),把上面这套流程整个教给 agent,让它自己判断该用哪一档、帮你把代码保护好。

shell
magiclock skill

接下来看什么