pyarmor不同环境下加密(Windows,Linux)
前言
你好! 你正在看的这篇文章是小编我整理出来的利用pyarmor进行python工程或者flask等工程加密的方法以及踩过的坑,内容涵盖了windows下用pycharm加密和Linux的宝塔虚拟环境下加密的方式方法。
pyarmor不同(Windows,Linux)环境加密
经过不断的踩坑,发现pyarmor这个包加密是需要分环境的,Windows下加密后的文件是dll文件,会自动生成一个名为pytransform的文件夹,文件夹内包含一个_pytransform.dll的文件,看到dll后缀名的文件那就是Windows下加密才有的文件名,如果你楞要把Windows下加密的放在Linux环境下,那么等待你的结果只有“无法使用!”
同样的Linux环境下加密也不能放在Windows下使用,pytransform文件夹内的文件就会变成so的后缀名,包含一个_pytransform.so的文件。
综上所述,打包的环境并不通用,因此各位同学在打包时尤其要注意这点。
Windows下用pycharm打包方法
1、进入终端输入命令:
# 安装pyarmor
pip install pyarmor
或者你可以进入pycharm的
Python Packages 搜索pyarmor进行安装
因为新版的pycharm比较推荐这种安装方式,安装各种包也是非常的方便。
2、进入终端敲命令:
# 进行加密,注意这里是要以main.py同级目录下的所有的py文件进行加密
pyarmor o main.py
等待加密完成后会生成dist的目录,目录下的文件就是已经加密好的文件,将源文件进行备份,然后将dist目录下的文件替换掉源文件即可完成加密。
需要注意的是,如果你的项目是flask的,而启动文件如果是app.py那么不要将app.py进行加密,加密app.py后flask项目将无法启动,当然,如果你的启动文件是别的什么阿猫阿狗的名字同样不要加密,加密后无法启动。可以加密项目内的其他文件,加密后并不影响使用。
我试过使用flask的蓝图,是完全可以加密的,并且能正常运行。
2、生成本地授权证书的加密方式:
# 生成一个带日期的加密证书。
pyarmor l -e 2023-01-01 test01
如上面代码所示,2023-01-01就是指证书到期日,通过证书加密的程序如果超过2023-01-01那么程序将无法运行。后面的test01则是证书文件夹名。后面的携带证书加密的代码会用到。
运行上面的命令后会生成一个licenses的文件夹,文件夹内还会有一个test01的文件夹,在里面有一个license.lic文件,这就是刚刚生成的证书文件。
接下来我们输入携带证书参数的命令,来生成带失效日期的加密文件,命令如下:
# 生成一个带日期的加密的文件夹内。
pyarmor o --with-license .\licenses\test01\license.lic main.py
如上,寻找好路径,将携带证书生成到main.py文件中,如果运行时间超过了证书所设置时间将会提示:License is expired,而程序也无法运行。
Linux 下用pycharm打包方法
Linux下打包和Windows下打包,基本上没什么太大的区别,上面也说过了,其实就是生成的文件格式不同,这里就不再赘述!