前言
整理一下经常使用到的模块
一、加密模块pyarmor
在公司上班的时候,有一次要发布python代码,设计到对代码的保密,需要进行加密。因此对python代码加密需要用到pyarmor模块。
先进行安装pyarmor 模块pip install pyarmor
默认安装到全局。
安装完就可以加密了,我这里通过案例进行笔记。
实例 1: 加密脚本
# 使用 obfuscate 加密路径 `examples/simple` 的下面的所有脚本
pyarmor obfuscate --recursive examples/simple/queens.py
# 加密后的脚本存放在 `dist`
cd dist
# 运行加密脚本
python queens.py
# 运行加密需要的所有文件都在 `dist` 下面,压缩之后就可以发给客户
zip queens-obf.zip .
# 如果需要设置加密脚本的使用期限,那么
cd /path/to/pyarmor
# 使用命令 licenses 生成一个有效期到 2020-10-01 的授权文件,存放在 licenses/r001 下面
pyarmor licenses --expired 2020-10-01 r001
# 使用 --with-license 指定上面生成的许可文件
pyarmor obfuscate --recursive --with-license licenses/r001/license.lic examples/simple/queens.py
# 压缩加密脚本给客户
cd dist
zip queens-obf.zip .
实例 2: 加密包(Package)
有一个项目 project,里面有一个路径 examples/simple。加密examples下的所有python文件。
首先说明一下,python加密的是一个包,在examples目录下,必须有一个 _init _.py文件。有了这个文件,在python里才能称为一个包。这也是区分 python包和普通文件夹 的重点。
加密在路径 examples 里所有 的 Python 脚本,也就是加密该路径里的代码。
pyarmor obfuscate --recursive output=dist/examples examples/__init__.py
参数解释:
obfuscate:加密。
–recursive:递归加密。
–output:输出 加密后的文件所在地。
examples/_init _.py: 要加密的包加密后的脚本存放在
dist
,如果不写 output 参数,会默认放到 dist 下面。