python程序加密打包_如何打包发布加密的 Python 源代码

这里介绍一种使用 PyInstaller 和 PyArmor 来发布加密 Python 源代码的方式,能够达到以下目的

把所有 Python 源代码打包成为可执行文件,客户不需要 Python 就可以运行

所有 Python 的源代码都经过加密

在 Python 源代码执行过程中,每一个函数执行完成之后,其代码块会重新被加密

可以设置 Python 源代码的有效期,过时之后无法在运行

可以绑定 Python 源代码到指定硬盘或者网卡

这里面是有到两个工具 PyInstaller 和 PyArmor,其中前者可以主要用于把源代码打包成为一个可执行文件,自动查找依赖的包,如果用到了图形库,例如 Tkinter, Qt, 使用这个工具可以很方便的进行打包。后者则可以加密源代码,并且把加密的代码绑定到硬盘和网卡,也可以设置有效期。

和其他打包工具一样,PyInstaller 对 Python 源代码只是简单编译成为 .pyc 文件,然后打到一个压缩包里面。虽然它提供了一个简单的加密方式[^1],但是很容易就可以使用调试器破解,真正的加密还依赖 PyArmor

PyArmor 对代码的加密分为两个层次,首先是对整个 .pyc 文件进行加密,其次是对每一个函数进行动态加密,即在函数开始调用的时候解密,执行完成之后在重新加密,这样从更高层次的确保了 Python 源代码的安全[^2]。

下面用一个具体的例子来说明如果打包发布一个脚本 hello.py

首先安装 PyInstaller 和 PyArmor

pip install pyinstaller

pip install pyarmor

然后使用 PyArmor 打包并加密脚本成为可执行文件,打包好的可执行文件放在 dist/hello 下面

pyarmor pack hello.py

运行打包好的文件

dist/hello/hello

生成一个限制使用时间并绑定到网卡的认证文件 licenses/code-01/license.lic

pyarmor licenses --expired 2019-01-01 --bind-mac 01:a2:b3:c4:d6:e6 code-01

使用新的授权文件替换默认授权文件,再次运行打包好的可执行文件

cp licenses/code-01/license.lic dist/hello

dist/hello/hello

更多功能,请访问 PyInstaller 主页 和 PyArmor 主页

原文链接:https://blog.csdn.net/weixin_43572000/java/article/details/83986683

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值