文章目录
- 0、快速了解
- 1、[使用PyArmor](https://pyarmor.readthedocs.io/zh/latest/usage.html)
- 2、示例
- 3.生成新的许可文件
0、快速了解
保护 Python 脚本工具可以加密 Python 脚本,保护运行时间 Python 代码不泄露,设置加密脚本的有效期,将加密脚本绑定到硬盘、网卡等硬件设备。 PyArmor 采用动态代码生成和交叉保护机制,确保加密脚本的安全。
1、使用PyArmor
安装方法最简单:pip install pyarmor
查看版本号:pyarmor --version
,在终端上成功看到版本号即安装成功。 命令 obfuscate 用来加密脚本。最常用的情况之一是切换到脚本app.py路径,然后执行。 加密:pyarmor obfuscate app.py
,PyArmor 会加密 app.py 所有在同一目录下的目录 *.py 文件到中。 操作加密代码:cd dist
之后,python app.py
即可。
2、示例
5行code写Flask web demo
app.py
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return 'hello world!' if __name__ == '__main__': app.run()
执行:python app.py
,其用web,Running on http://127.0.0.1:5000/
:在app.py执行目录:pyarmor obfuscate app.py
在同一目录下生成dist目录, 操作加密代码:cd dist
之后,python app.py
可以(向客户发布加密脚本只需要输出路径 dist 复制过去所有文件)。
默认情况下,只有其他目录与主脚本相同 *.py 同时加密。如果你想递归加密。 子目录下的一切 *.py 使用以下命令:
pyarmor obfuscate --recursive app.py
注:无需安装加密脚本 PyArmor,没有必要在运行环境里面安装 PyArmor
3.生成新的许可文件
加密脚本必须有认证文件 license.lic 。一般来说,在加密脚本的同时,会自动生成缺失的认证文件。但是,缺失的认证文件允许加密脚本在任何机器中运行,永远不会过期。 若需设置加密脚本的使用寿命或限制脚本在特定机器中的使用,则需要生成新的许可文件, 并使用新的许可文件加密脚本。
3.1、执行pyarmor licenses --expired 2022-04-28 r001
这条命令 PyArmor 有效期的认证文件将生成: 3.然后,使用新生成的许可文件加密脚本:pyarmor obfuscate --with-license licenses/r001/license.lic app.py
这样,在2019年1月1日之后,使用以下命令操作脚本就会报错:cd dist/
python app.py
3.3.如果您想将加密脚本绑定到固定机器上,请在机器上运行以下命令以获取硬件信息:pyarmor hdinfo
3.4成绑定到固定机器的许可文件: 硬盘信息(如果一台机器上有多个硬盘,那么 pyarmor 只检查默认硬盘,即命令 hdinfo 打印的默认硬盘)pyarmor licenses --bind-disk "100304PBN2081SF3NJ5T" --bind-mac "20:c1:d2:2f:a0:96" r002
同样,使用此许可文件加密脚本,加密脚本只能在指定机器上运行:pyarmor obfuscate --with-license licenses/code-002/license.lic app.py