1. 首页
  2. 自学中心
  3. 软件
  4. Python

一行代码的Python加密和&加速-nuitka打包pyd技巧谈

应打包群的群友要求将py文件打包pyd来防止被破解,大家 熟知用cython可以做到,可是我们pythonic的精神是人生苦短,我用Nuitka

在以前的文章中,我们提到将需要打包的py代码放在need文件夹中,运行速度快了,编译速度也快了,还是有一些聪明的群友提到。如果数据库部分没有打包成C++,是不是可以在数据库的地方把用户名和密码等print出来,这个考虑是对的

这只是我写这篇文章的主要原因之一,还有一半的原因是很多的py程序直接打包的话会失败,还不如分成两部或者多部来打包,中间通过pyd来衔接。这样的话我们解决python领域的以下几个问题:

  1. 加密预防反编译,虽然对方可以读到pyd的函数,读到的是数据可以通过md5加上随机进行二次加密,或者绑定多个硬件信息;随机函数即便拿到下次就用不了,破解就没有用了(如果对方比较变态,OK,做两个随机并绑定mac和cpu信息的pyd发送和接收控制)
  2. python3x.dll对pyd的敏感度没有像py文件那么严,通过这个方法把打包失败的地方分开来进行,改善复杂模块的打包失败率打包成功的几率又大大提高了
  3. pyd的快速实现
这一行命令很简单:
nuitka --mingw64 --module --show-progress --output-dir=o 你的.py

以下是昨天我们nuitka打包群朋友的案例来进行的,打包一个包含peewee模块的程序

一行代码的Python加密和&加速-nuitka打包pyd技巧谈
一行代码的Python加密和&加速-nuitka打包pyd技巧谈
一行代码的Python加密和&加速-nuitka打包pyd技巧谈

这个peewee中包含pymysql和其他模块,直接用Nuitka打包会失败,报错如下

一行代码的Python加密和&加速-nuitka打包pyd技巧谈

执行 nuitka –mingw64 –module –show-progress –output-dir=o peewee.py
几分钟后pyd文件就出来了

一行代码的Python加密和&加速-nuitka打包pyd技巧谈

然后试着删除peewee.py,把这个pyd文件放到Python37\Lib\site-packages\目录下,程序完美运行,再打包整个exe,打完收工

本文来自zhihu,观点不代表一起大数据-技术文章心得立场,如若转载,请注明出处:https://zhuanlan.zhihu.com/p/146181540

联系我们

在线咨询:点击这里给我发消息

邮件:23683716@qq.com

跳至工具栏