Pyarmor9 最新加密教程:从入门到上手(参考官网文档)_pyarmor加密
官网文档:https://pyarmor.readthedocs.io/en/latest/
一、Pyarmor 是什么?
想象你写了一个超级厉害的 Python 脚本,比如一个计算彩票中奖号码的程序(当然是玩笑),你不想让别人偷看或随便复制怎么办?Pyarmor 就像给你的代码加了一把锁,别人拿到也看不懂,甚至只能在你指定的电脑上运行。
- 主要功能:
- 混淆代码:把代码变成“天书”,让人看不懂。
- 绑定设备:让代码只能在特定电脑上跑。
- 设置过期:让代码到时间自动失效。
二、准备工作
-
安装 Pyarmor: 打开命令行(Windows 是 CMD,Mac 是终端),输入: 装好后,输入 pyarmor --version 检查版本,确保安装成功(应该是 9.x.x)。
-
写个简单脚本: 新建一个文件 hello.py,内容如下:
def say_hello(): print(\"你好,我是加密小王子!\") if __name__ == \"__main__\": say_hello()`
三、基础加密:让代码变“天书”
- 最简单混淆: 在命令行输入:
- 运行后,会生成一个 dist 文件夹,里面有 hello.py 的加密版。
- 输入 python dist/hello.py,你会发现它还能正常运行,打印“你好,我是加密小王子!”。
- 但打开 dist/hello.py 看,代码已经变成一堆乱七八糟的符号,普通人完全看不懂。
- 怎么回事?
- Pyarmor 把你的代码加密后,塞进了一个叫 pyarmor_runtime_xxxxxx 的小助手。这个助手会在运行时解密代码,但别人看不到原始内容。
- 比喻:就像把你的秘密日记锁进保险箱,别人只能看到锁好的箱子。
四、进阶玩法:加点限制
1. 设置过期时间
不想让代码永久有效?可以加个“保质期”:
pyarmor gen -e \"30\" hello.py
- -e 30 意思是 30 天后失效。
- 30 天后运行 dist/hello.py,会报错:“脚本已过期”。
- 比喻:就像牛奶过了保质期不能喝。
2. 绑定特定电脑
想让代码只能在你的电脑上跑?需要绑定硬件信息,比如网卡地址:
-
先查自己电脑的网卡地址(MAC 地址):
- Windows:命令行输入 ipconfig /all,找“物理地址”。
- Mac/Linux:输入 ifconfig,找“ether”。
- 假设是 00:16:3e:35:19:3d。
-
加密时绑定:
pyarmor gen -b \"00:16:3e:35:19:3d\" hello.py
-
现在 dist/hello.py 只能在这台电脑上跑,换台电脑会报错:“未授权使用”。
3. 保护整个包
如果你的代码不只是一个文件,而是一个文件夹(比如 mypkg),可以这样加密:
- -i 表示加密整个包,生成 dist/mypkg,里面的 __init__.py 和其他文件都会被混淆。
五、更强的保护:高级混淆
Pyarmor 提供了更厉害的混淆方式,让代码更难被破解。
-
RFT 模式(重命名变量):
-
默认混淆只是加密代码,变量名没变。RFT 会把变量名也改掉,比如 say_hello 变成 pyarmor_xxx。
-
命令:
pyarmor gen --enable-rft hello.py
-
效果:连函数名都看不出来,更难逆向。
-
-
BCC 模式(转成 C 代码):
-
把 Python 代码转成 C 语言再编译,超级难破解。
-
命令:
pyarmor gen --enable-bcc hello.py
-
注意:需要安装 C 编译器(比如 gcc),性能更好但稍微复杂。
-
六、打包分发:让别人也能用
加密后的代码需要 pyarmor_runtime_xxxxxx 文件才能跑,怎么发给别人?
-
直接发文件夹:
- 把整个 dist 文件夹发给别人,他们用 python dist/hello.py 就能跑。
-
打包成 exe:
-
用 PyInstaller 打包:
pyinstaller --add-data \"dist/pyarmor_runtime_xxxxxx;pyarmor_runtime_xxxxxx\" dist/hello.py
-
生成一个 exe 文件,别人双击就能用,连 Python 都不用装。
-
七、注意事项
-
试用版限制:
- 免费版有大小限制(大脚本不能加密)和功能限制,高级功能(如 RFT、BCC)需要买 Pro 版。
-
调试问题:
-
如果加密后运行出错,加 --debug 查看日志:
pyarmor gen --debug hello.py
-
日志在 pyarmor.debug.log 里,帮你找问题。
-
-
别装错地方:
- Pyarmor 装在开发电脑上就行,目标电脑不需要装,只要有 pyarmor_runtime 文件。
八、实战练习
试试这个小任务:
- 写个脚本 calc.py:
def add(a, b): return a + b print(add(3, 4))`
-
用 Pyarmor 加密,设置 7 天过期,绑定你的电脑。
-
测试加密后的文件能不能跑,过期后会怎样。
命令参考:
pyarmor gen -e \"7\" -b \"你的MAC地址\" calc.py
总结:Pyarmor 的加密法则
- 基础混淆:让代码看不懂(pyarmor gen)。
- 加限制:过期(-e)、绑设备(-b)。
- 高级混淆:改名字(–enable-rft)、转 C 码(–enable-bcc)。
- 分发:带着 pyarmor_runtime 一起发,或打包成 exe。
通过这个教程,你应该能轻松上手 Pyarmor,把你的 Python 代码保护得像银行金库一样安全!有问题随时私信交流