python脚本加密工具PyArmor的实现
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
- 运行结果:执行后,所有加密文件和运行依赖会被放在
dist文件夹里。 - 关键依赖:加密脚本本身无法独立运行,必须和
dist目录下的运行辅助包(如pyarmor_runtime_000000)放在一起。把整个dist目录发布出去,客户就能直接运行了。
3. 给代码加上“有效期”
通过设置到期时间,可以控制程序的使用期限,这在分发试用版时很有用。
- 设置天数(30天后过期):
pyarmor gen -e 30 foo.py
- 设置具体日期:
pyarmor gen -e 2026-12-31 foo.py
默认情况下,检查的是系统本地时间。如果希望从网络时间服务器获取时间,可以先进行配置,这样用户修改电脑本地时间也无法绕过授权。
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.so6. 常用命令与选项速查
- -O, --output:指定加密文件的输出目录,默认为 dist。
- -r, --recursive:递归加密指定目录下的所有 .py 文件,用于加密整个项目或包。
- --exclude:在递归加密时,排除某些目录或文件。
- -d, --debug:开启调试模式,如果加密过程遇到问题,这个选项会打印更详细的错误信息,有助于排查问题。
- -h, --help:查看任何命令的详细用法,例如 pyarmor gen -h。
注意: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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python paramiko 模块浅谈与SSH主要功能模拟解析
这篇文章主要介绍了Python paramiko 模块详解与SSH主要功能模拟,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-02-02
selenium+python自动化测试之使用webdriver操作浏览器的方法
这篇文章主要介绍了selenium+python自动化测试之使用webdriver操作浏览器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-01-01
Python类方法__init__和__del__构造、析构过程分析
这篇文章主要介绍了Python类方法__init__和__del__构造、析构过程分析,本文分析了什么时候构造、什么时候析构、成员变量如何处理、Python中的共享成员函数如何访问等问题,需要的朋友可以参考下2015-03-03


最新评论