2.3. 打包使用外部密钥的加密脚本

下面说明如何加密并打包一个应用程序 src/myapp.py 并使用 外部密钥

首先使用 PyInstaller 打包:

$ pyinstaller myapp.py

接着加密脚本并替换生成的可执行文件,同时指定使用外部密钥:

$ pyarmor gen --outer --pack dist/myapp/myapp myapp.py

然后生成外部密钥:

$ pyarmor gen key -O keylist -e 30

对于打包成为单个目录的模式来说,一般存放运行密钥到运行辅助包的目录,例如:

$ cp keylist/pyarmor.rkey dist/myapp/pyarmor_runtime_000000/

这样就可以在任何位置运行可执行文件 dist/myapp/myapp 。例如:

$ dist/myapp/myapp

如果是打包成为单个可执行文件,一般把外部密钥和可执行文件存放在相同目录下面,并且重命名为 可执行文件名称.密钥名称 。例如:

$ pyinstaller --onefile myapp.py
$ pyarmor gen --outer --pack dist/myapp myapp.py
$ pyarmor gen key -O keylist -e 30
$ cp keylist/pyarmor.rkey dist/myapp.pyarmor.rkey

然后这样就可以在任意目录运行可执行文件,例如:

$ dist/myapp

还有一种情况是把运行密钥存放在一个固定目录下面,然后使用环境变量来指定这个目录。例如:

$ export PYARMOR_RKEY=/opt/pyarmor/runtime_data
$ mkdir -p /opt/pyarmor/runtime_data
$ cp keylist/pyarmor.rkey /opt/pyarmor/runtime_data/
$ dist/foo