内容提要
本文介绍了pyarmor,一个强大的Python代码混淆工具,可以设置过期时间和绑定电脑信息,防止用户拿到代码后跑路并实现定期付费。
延伸解读
pyarmor 与 pyminifier 的混淆强度对比
文章指出,pyminifier 的混淆仅停留在变量名替换层面,耐心分析仍可读懂;而 pyarmor 加密后的代码“人已经完全没法看懂了”,但能正常运行。这说明两者在保护强度上有本质区别:前者更像玩具,后者才具备实际防逆向能力。对于需要交付代码又不想泄露逻辑的场景,pyarmor 是更可靠的选择。
过期时间与授时服务器:避免本地时间篡改
pyarmor 支持设置相对(如30天)或绝对日期(如2024-08-30)的过期时间。更关键的是,通过配置 nts=pool.ntp.org,可以让过期判断依赖授时服务器而非电脑本地时间。这能防止用户通过修改系统时间来绕过限制,适合需要定期付费或试用期控制的商业场景。
设备绑定:限制程序只能在指定机器运行
除了时间控制,pyarmor 还能绑定 MAC 地址、IP 地址或电脑序列号。例如 pyarmor g -b <mac地址> 后,只有对应设备能运行加密程序。这为软件授权提供了硬件级约束,能有效防止用户随意复制传播,尤其适合按设备收费或限制内部使用的工具。
使用注意:运行时文件必须随程序分发
加密后会生成一个二进制文件 pyarmor_runtime_000000,它必须与加密后的程序放在一起才能正常运行。这意味着分发时不能只给单个脚本文件,否则程序无法启动。同时,免费版虽覆盖大部分功能,但若用于商业项目,仍需留意授权条款和功能限制。
Q&A
pyarmor是什么?
pyarmor是一个强大的Python代码混淆工具,功能比pyminifier更强大。
如何安装pyarmor?
可以通过命令pip install pyarmor来安装pyarmor。
pyarmor的免费版有哪些功能?
pyarmor的免费版提供大部分功能,适合加密小脚本。
pyarmor如何设置程序的过期时间?
可以通过命令pyarmor g -e 30设置程序30天后过期,也可以使用绝对日期。
pyarmor如何绑定电脑信息?
pyarmor可以绑定电脑的MAC地址、IP地址和序列号,限制程序运行的设备。
使用pyarmor有什么好处?
使用pyarmor可以防止用户在获取代码后跑路,并实现定期付费。