Content
- [一、PyArmor 是什么](#一、PyArmor 是什么)
- [二、PyArmor 的工作原理](#二、PyArmor 的工作原理)
- [三、PyArmor 的主要功能](#三、PyArmor 的主要功能)
-
- [1 代码混淆(Obfuscation)](#1 代码混淆(Obfuscation))
- [2 代码加密](#2 代码加密)
- [3 运行环境绑定](#3 运行环境绑定)
- [4 License 授权](#4 License 授权)
- [5 防止反编译](#5 防止反编译)
- [四、安装 PyArmor](#四、安装 PyArmor)
- 五、基本使用方法
-
-
- [1 加密代码](#1 加密代码)
- [2 加密整个项目](#2 加密整个项目)
- [3 指定输出目录](#3 指定输出目录)
-
- [六、PyArmor + PyInstaller(常见组合)](#六、PyArmor + PyInstaller(常见组合))
- [七、PyArmor 优缺点](#七、PyArmor 优缺点)
- [八、PyArmor 与其他方案对比](#八、PyArmor 与其他方案对比)
- 九、适合的项目类型
- 十、一个真实的发布流程(推荐)
PyArmor 是一个专门用于 保护 Python 源代码 的工具。它通过 代码混淆、加密和授权机制,使别人即使拿到程序文件,也很难查看或修改你的源码。
下面给你做一个系统介绍。
一、PyArmor 是什么
PyArmor 是一个 Python 代码保护工具,主要功能是:
- 加密 Python 源代码
- 混淆代码结构
- 限制程序运行环境
- 生成授权 License
使用 PyArmor 后:
- 用户 可以运行程序
- 但 无法看到源码
常见使用场景:
- 商业 Python 软件分发
- AI/算法代码保护
- SDK 发布
- Python 工具软件
二、PyArmor 的工作原理
PyArmor 的核心思路是:
- 对 Python 源代码进行加密
- 生成一个运行时加载器
- 程序运行时再解密执行
流程大致如下:
原始代码
↓
PyArmor 加密
↓
生成保护代码
↓
用户运行程序
↓
运行时动态解密执行
例如:
原始代码
python
print("Hello World")
使用 PyArmor 保护后:
python
from pyarmor_runtime import __pyarmor__
__pyarmor__(...)
源码已经变成加密格式。
三、PyArmor 的主要功能
1 代码混淆(Obfuscation)
把源码转换成难以理解的形式,例如:
python
def add(a,b):
return a+b
可能变成:
python
def f1(a,b):
return a+b
甚至被编译成加密字节码。
2 代码加密
PyArmor 会:
- 加密
.py - 生成
.pyc或加密模块
别人无法反编译。
3 运行环境绑定
可以限制程序只能在:
- 指定机器
- 指定 IP
- 指定 MAC 地址
- 指定时间
运行。
例如:
只能在某台服务器运行
4 License 授权
可以生成授权文件:
license.lic
实现:
- 试用版
- 限时运行
- 指定机器运行
5 防止反编译
PyArmor 对代码做了:
- bytecode 加密
- runtime 保护
即使使用:
uncompyle6
也很难还原源码。
四、安装 PyArmor
安装非常简单:
bash
pip install pyarmor
查看版本:
bash
pyarmor --version
五、基本使用方法
假设你的项目:
project
├── main.py
├── utils.py
└── config.yaml
1 加密代码
bash
pyarmor gen main.py
生成目录:
dist/
├── main.py
└── pyarmor_runtime/
运行:
bash
python dist/main.py
2 加密整个项目
bash
pyarmor gen -r .
参数说明:
-r 递归加密目录
3 指定输出目录
bash
pyarmor gen -O dist -r .
生成:
dist/
六、PyArmor + PyInstaller(常见组合)
实际项目中通常这样做:
Python代码
↓
PyArmor 加密
↓
PyInstaller 打包
↓
EXE / 二进制程序
示例:
bash
pyarmor gen main.py
pyinstaller dist/main.py --onefile
最终得到:
MyApp.exe
用户:
- 能运行
- 看不到源码
七、PyArmor 优缺点
优点
1️⃣ 保护 Python 源码
2️⃣ 防止反编译
3️⃣ 支持 License
4️⃣ 支持项目级保护
5️⃣ 跨平台
支持:
- Linux
- Windows
- Mac
缺点
1️⃣ 不是 100% 安全
高级逆向仍可能破解。
2️⃣ 免费版有限制
部分高级功能需要付费。
3️⃣ 运行时稍微变慢
因为需要解密代码。
八、PyArmor 与其他方案对比
| 方法 | 是否能看到源码 |
|---|---|
直接发 .py |
可以 |
.pyc |
可以反编译 |
| PyInstaller | 可以提取 |
| PyArmor | 很难 |
所以很多商业 Python 软件都用:
PyArmor + PyInstaller
九、适合的项目类型
非常适合:
- AI算法
- 机器人控制软件
- 商业Python软件
- SDK
不太适合:
- 开源项目
- 需要用户修改代码的项目
十、一个真实的发布流程(推荐)
企业常用流程:
开发代码
↓
PyArmor加密
↓
PyInstaller打包
↓
生成二进制程序
↓
客户运行
最终用户拿到:
MyApp
但:
看不到源码
✅ 总结一句话:
PyArmor 是 Python 最常用的源码保护工具之一,用于加密和混淆 Python 代码,防止源码泄露。