python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python PyArmor

python脚本加密工具PyArmor的实现

作者:周小董

PyArmor是一个Python脚本加密工具,提供安装、加密、授权绑定和打包等功能,通过pip安装后,可使用命令加密单个脚本或整个项目,下面就来详的介绍一下

git:https://gitcode.com/gh_mirrors/py/pyarmor
https://github.com/dashingsoft/pyarmor

中文文档:https://pyarmor.readthedocs.io/zh/latest/
英文文档:https://pyarmor.readthedocs.io/en/latest/

PyArmor 是一个用来加密和保护 Python 脚本的命令行工具。下面是一份快速上手指南,涵盖了安装、基本加密、高级授权和打包等核心操作。

1. 安装 PyArmor

安装过程很简单,直接用 pip 就可以。

pip install pyarmor
# 如果需要升级
pip install --upgrade pyarmor

安装完成后,可以用 pyarmor --version 验证是否成功。

2. 快速入门:加密单个脚本

最基础的使用场景是加密一个单独的 .py 文件。假设你的脚本叫 foo.py

# 在 v8+ 版本中,推荐使用 'gen' 命令
pyarmor gen foo.py

或者使用旧版本的 obfuscate 命令。

pyarmor obfuscate foo.py

3. 给代码加上“有效期”

通过设置到期时间,可以控制程序的使用期限,这在分发试用版时很有用。

默认情况下,检查的是系统本地时间。如果希望从网络时间服务器获取时间,可以先进行配置,这样用户修改电脑本地时间也无法绕过授权。

pyarmor cfg nts=pool.ntp.org
pyarmor gen -e 30 foo.py

4. 将脚本“绑定”到指定机器

通过绑定硬件信息(如MAC地址、硬盘序列号),可以让代码只能在指定的机器上运行,防止随意拷贝。

# v8.4.6 以后的版本
python -m pyarmor.cli.hdinfo
# 旧版本
pyarmor hdinfo
# 绑定MAC地址
pyarmor gen -b "00:16:3e:35:19:3d" foo.py

# 绑定硬盘序列号
pyarmor gen -b "HXS2000CN2A" foo.py

绑定多个MAC地址
pyarmor gen --bind 66:77:88:9a:cc:fa,f8:ff:c2:27:00:7f your_script.py

也可以同时绑定多个设备,只需多次使用 -b 选项。

参数功能描述
--enable-jit启用动态指令生成技术
--mix-str加密字符串常量(需正版授权)
--assert-call防止函数被替换

完整示例:

pyarmor gen --enable-jit --mix-str --assert-call foo.py

5. 打包成独立可执行文件

# 打包为单文件
pyarmor gen --pack onefile -O dist_onefile main.py

# 打包为目录
pyarmor gen --pack onedir -O dist_onedir main.py

注意:非.py文件需手动复制到输出目录

加密后的脚本依赖运行时环境,发布结构示例:

dist/
├── foo.py
└── pyarmor_runtime_000000/
    ├── __init__.py
    └── pyarmor_runtime.so

6. 常用命令与选项速查

注意:PyArmor 的命令和选项在不同版本间可能会有细微差异。如果在使用中遇到问题,可以随时通过 pyarmor <command> -h 查看当前版本的帮助信息。

# 加密整个包,保留目录结构
pyarmor gen -r -O dist_output src/mypackage
pyarmor gen --platform windows.x86_64,linux.x86_64 your_script.py

到此这篇关于python脚本加密工具PyArmor的实现的文章就介绍到这了,更多相关python PyArmor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文