前言说明:本文章是测试PyArmor库的心路历程,在pycharm新建项目的虚拟环境中进行的,需要加密的脚本是TouTiaoV1.py,需要提前安装好pyinstaller,pyarmor库。
PyArmor目前版本是8.2+,但是本人根据PyArmor官方指导文档,测试8X的指令,老是报错,所以,用了7X版本的指令进行的测试,7X的说明文档也是在之前版本上修修补补得来的,需要一点点的测试。经过测试,得到了以下总结文章,希望能够帮助到大家!淘小白❤ TXB2196
下面所有运行的指令都是在pycharm的终端中执行的。
本人安装的PyArmor是8+版,可以使用7X的指令运行加密。
pyarmor这个库是收费的,正版¥298,请先购买正版再进行以下测试!
pycharm终端安装所需库:
pip install pyarmor
一、直接加密脚本测试
直接加密Python脚本,7X指令,会把默认目录下面的py文件全部进行加密,指令生成有效,脚本可以正常执行;
pyarmor-7 obfuscate TouTiaoV1.py
二、加密脚本,设置脚本有效期测试
1、加密过程中给脚本设置一个有效日期,到期脚本会自动过期失效,运行脚本会自动闪退,无法正常运行,测试加密过程分成两步,先生成一个日期身份文件。
生成有效日期文件,在licenses/r001中可以查看到这个生成的日期身份文件。注:r001可以自定义,改成其他也可以
生成指令如下:
pyarmor-7 licenses -e 2023-06-28 r001
2、使用生成的时间身份文件与脚本一起加密,生成加密脚本,保存路径是dist2
加密指令如下:
pyarmor-7 obfuscate --with-license licenses/r001/license.lic --exact -O dist2 TouTiaoV1.py
三、加密脚本,绑定机器MAC码测试
绑定机器MAC码,也是分成两步,首先获取机器码,生成机器码身份文件,再进行脚本加密。
绑mac身份文件保存在licenses/r002/中,注:r002可以自定义,改成其他也可以
1、 生成身份文件
1.1生成一个假的MAC码用于对比测试;
pyarmor-7 l --bind-mac 00:16:3e:35:19:3d r002
1.2生成本机真MAC码做对比测试;
首先,执行命令,获取本机MAC码:
Pyarmor-7 hdinfo
执行命令生成MAC身份文件:
pyarmor-7 l --bind-mac 00:ff:d8:13:24:ba r003
2、加密脚本
2.1使用假MAC机器码加密,指令如下:
pyarmor-7 obfuscate --with-license licenses/r002/license.lic --exact -O dist3 TouTiaoV1.py
使用假MAC机器码身份加密脚本,加密后的脚本保存在dist3中。
经测试使用假身份加密脚本,运行测试会闪退;
2.2使用本机真MAC机器码加密,指令如下:
pyarmor-7 obfuscate --with-license licenses/r003/license.lic --exact -O dist4 TouTiaoV1.py
使用本机真身份加密脚本,运行测试正常。加密后的脚本保存在dist4中.
经测试使用真身份加密脚本,运行正常;
三、加密打包成可执行文件(目录版)
第一步:安装pyinstaller库,已安装过忽略,没有安装过执行下面命令:
pip install pyinstaller
第二步:加密脚本,指令如下:
pyarmor-7 obfuscate TouTiaoV1.py
第三步:执行 pyinstaller TouTiaoV1.py 创建 TouTiaoV1.spec
指令如下:
pyinstaller TouTiaoV1.py
生成文件时,会提示y/n 输入y回车
第四步:生成最终的安装包,正确目录为:dist/TouTiaoV1/ 执行指令如下:
pyinstaller TouTiaoV1.spec
第五步:增加使用限制,绑定MAC码或者设置试用期限,指令如下:
Pyarmor-7 pack --with-license licenses/r003/license.lic TouTiaoV1.py
注:本人在测试增加MAC绑定的过程中存在未知的编码错误,绑定机器失败。
不绑定MAC的安装包是可以正常运行的。
PyArmor这个加密库的更新版本很多,有兴趣的朋友可以去看下官方文档!有测试过的朋友,打包成单个文件,并且能够绑定mac地址成功的朋友,请评论区留言,帮助更多的朋友,这个库的资料实在太少了!