PyArmor 一键加密
使用:
pyarmor obfuscate main.py
参考:Python代码加密方案_python加密代码_wgr_1009的博客-CSDN博客
中文文档:1. 使用教程 — Pyarmor 8.3.6 文档
一 简介
PyArmor是用于保护Python代码的工具,它可以将Python脚本编译成加密的字节码,以增加代码的保护性。它的主要目的是防止未经授权的访问、复制或修改您的Python代码。使用PyArmor,您可以将您的Python代码转换为不易阅读的字节码形式,并且需要在运行时提供授权文件才能解密和运行。这有助于防止普通用户直接查看您的源代码,但请注意,这并不能阻止所有可能的攻击。
知乎解读:PyArmor原理调研 - 知乎
github: GitHub - dashingsoft/pyarmor
二 使用
进入要加密的目录,假设main.py是要加密的文件。则
pyarmor obfuscate main.py
PyArmor 会加密 main.py
和相同目录下面的所有 *.py
文件:
并创建输出子目录 dist
之后按加密前的调用方法使用即可。
2.1 安装
pip install pyarmor
# 验证是否安装成功, 7.0 以下版本为稳定版
pyarmor --version
三 PyArmor新版本
只有三个命令:gen、reg 和 cfg
3.1 混淆一个脚本
三个命令都可以:gen, g, generate
pyarmor gen foo.py
pyarmor g foo.py
pyarmor generate foo.py
该命令 生成一个混淆的脚本dist/foo.py
,这是一个有效的Python脚本,通过Python解释器运行它:
python dist/foo.py
检查默认输出路径中所有生成的文件:
ls dist/
... foo.py
... pyarmor_runtime_000000
有一个额外的 Python 包pyarmor_runtime_000000
,需要它来运行混淆的脚本。
3.2 分发脚本
仅仅复制dist/foo.py
到另一台机器是行不通的,而是复制 dist/
.
请在相同Python版本、相同平台的机器上运行此混淆代码,否则无法运行。因为pyarmor_runtime_000000
有扩展模块,所以它是平台相关的并且绑定到Python版本。
3.3 混淆包
pyarmor gen -O dist2 src/mypkg
检查输出格式是否正确:
$ ls dist2/
... mypkg
... pyarmor_runtime_000000
$ ls dist2/mypkg/
... __init__.py
中的所有混淆脚本dist2/mypkg
,测试一下:
cd dist2/
python -C 'import mypkg'
如果有子包,使用-r启用递归模式:
pyarmor gen -O dist2 -r src/mypkg
四 直接加密文件夹
pyarmor gen .
五 生成跨平台版本
pyarmor gen --platform windows.x86_64
--platform linux.x86_64 \
--platform darwin.x86_64 \
foo.py
pyarmor gen --platform linux.x86_64 .
六 需要进一步执行的命令
6.1 生成加密文件
pyarmor gen main.py
6.2 拷贝文件到上级目录执行覆盖
xcopy /Y /E dist\*.* .
6.3 测试执行代码
python main.py
七 docker命令使用
# 6.1 生成加密文件
RUN pyarmor gen main.py
# 查看文件夹文件
RUN ls -a
更多推荐
所有评论(0)