Python代码部署的三种加密方案:代码混淆、代码编译、代码打包

这篇具有很好参考价值的文章主要介绍了Python代码部署的三种加密方案:代码混淆、代码编译、代码打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近需要源码部署一个项目,因此探索一下保护源码的方式,由简单到复杂主要总结为以下三大类:

  • 代码混淆:主要是改变一些函数名、变量名
  • 代码打包:思路是把Python代码打包成 .exe 的可执行文件
  • 代码编译:思路是将Python代码编译成C,然后编译成动态链接库文件(linux的.so、windows的.dll)

一、代码混淆

代码混淆主要是改变一些函数名、变量名。可使用 Oxyry 对关键源码进行混淆,效果如下:
python代码混淆,技术杂记,python,linux,windows
这种只是降低了代码可读性,严格意义上算不上是加密,不过针对足以应对一大半甲方了(哈哈哈)

二、代码打包

可以用 py2exe 或者 Nuitka 将代码打包成 exe 文件,不过只能从windows系统上运行,也可用 pyinstaller 打包,不过容易被攻破。不太符合我的需求,因此这种方式先立flag,等用到再说。参考资料:https://zhuanlan.zhihu.com/p/133303836

三、代码编译

这里使用 PyArmor 进行操作。这个工具能加密 Python 脚本,还能有效期限,绑定加密脚本到硬盘、网卡等硬件设备(试用版可以免费用)。

官方文档:https://pyarmor.readthedocs.io
安装:pip install pyarmor
升级:pip install --upgrade pyarmor
查看版本:pyarmor -v
基本语法:pyarmor [command] [options]


3.1 pyarmor快速使用

代码加密:执行 pyarmor obfuscate server.py,就会把 server.py 作为入口函数且将同目录下的 py 文件加密到 ./dist 文件夹中(如果递归加密子目录下py文件可执行 pyarmor obfuscate --recursive server.py )。加密后端的代码长这样:
python代码混淆,技术杂记,python,linux,windows
对于不同操作系统,会编译生成不同格式的动态链接库文件:
python代码混淆,技术杂记,python,linux,windows
生成的dist目录内容如下:
python代码混淆,技术杂记,python,linux,windows

运行脚本:cd到 ./dist 文件夹正常执行 python server.py 即可(运行加密后的脚本用到 pytransform,但不用安装 pyarmor 了)。

3.2 pyarmor进阶使用

设置过期时间:执行代码 pyarmor licenses --expired 2022-01-01 r001,则在dist同级的当前目录生成 licenses 文件夹:
python代码混淆,技术杂记,python,linux,windows
此外,如果要绑定mac地址或者硬盘,可以执行 pyarmor hdinfo 查看硬件信息,然后执行pyarmor licenses --bind-disk "xxxxxx" --bind-mac "xx:xx:xx:xx:xx:xx" r002 生成证书。

生成证书后,带上 licenses 执行加密命令:pyarmor obfuscate --with-license licenses/r001/license.lic server.py,生成 dist 后 cd 进去再执行,如果时间过期了(或硬件不对),就会报错(此时即使删掉 licenses 文件夹也没啥用)。

参考文献:
[1] 介绍几种 Python 加密源代码的方法
[2] 使用 PyArmor(官方文档)文章来源地址https://www.toymoban.com/news/detail-647070.html

到了这里,关于Python代码部署的三种加密方案:代码混淆、代码编译、代码打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 加密文档的三种基本方法

    一、Windows系统自带的加密工具:       1、找到一个word文档,对其进行加密:        2、在选择的word文档上右击,并选择最下方的属性,进入属性界面       3、在属性界面点击高级,进入高级属性界面,找到“机密内容以便于保护数据”并选择它,最后在高级属性和wor

    2024年02月05日
    浏览(47)
  • 无线路由器的三种加密方式详细介绍

      无线路由器主要提供了三种无线安全类型:WPA-PSK/WPA2-PSK、WPA/WPA2 以及WEP。不同的安全类型下,安全设置项不同。 1. WPA-PSK/WPA2-PSK WPA-PSK/WPA2-PSK安全类型其实是WPA/WPA2的一种简化版本,它是基于共享密钥的WPA模式,安全性很高,设置也比较简单,适合普通家庭用户和小型企业使

    2024年02月06日
    浏览(63)
  • Cython加密python代码防止反编译

    本方法适用于Linux环境下: 1.安装库Cython   2.编写待加密文件:hello.py   3.编写加密脚本   4.执行加密命令   5.执行结果:会生成build文件夹、同名.c文件和同名.so文件,其中.so文件是我们需要的文件,只保留.so文件,其余的全部删除 生成的文件名为 hello.cpython-38-x86_64-linux-g

    2024年02月08日
    浏览(107)
  • OpenCV函数应用:基于二值图像的三种孔洞填充方法记录(附python,C++代码)

    函数系列: OpenCV函数简记_第一章数字图像的基本概念(邻域,连通,色彩空间) OpenCV函数简记_第二章数字图像的基本操作(图像读写,图像像素获取,图像ROI获取,图像混合,图形绘制) OpenCV函数简记_第三章数字图像的滤波处理(方框,均值,高斯,中值和双边滤波) OpenC

    2024年02月05日
    浏览(54)
  • python代码加密方案

    为何要对代码加密? python的解释特性是将py编译为独有的二进制编码pyc 文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要。 常见的源码保护手段有如下几种: 发行.pyc文件

    2024年02月03日
    浏览(27)
  • 前端常用的三种加密方式(MD5、base64、sha.js)

    作为一名优秀的前端开发工程狮,保障用户的信息安全、密码义不容辞,废话不多说,由我来介绍三种日常开发中经常用到的加密方式。 介绍: MD5中文含义为信息-摘要算法5,就是一种信息摘要加密算法,可以将数据转译为另一固定长度值 特点: 压缩性:任意长度的数据,

    2024年02月06日
    浏览(57)
  • apk反编译检测代码是否混淆

    把 apk 当成 zip 并解压,得到 classes.dex 文件(有时可能不止一个 dex 文件,但文 件名大多类似)    使用 dex2jar 执行如下命令: dex2jar.bat classes.dex 文件路径  得到 classes.dex.jar  然后使用 jd-gui 打开 jar 文件,即可得到 JAVA 代码。【注: 直接使用 smali2java 或 者 APKAnalyser 打开

    2024年02月15日
    浏览(39)
  • 恒流电路的三种设计方案

    作为硬件研发工程师相信对恒流电路不会陌生,本文介绍下三种恒流电路的原理图。 三极管恒流电路 三极管恒流电路     三极管的恒流电路,主要是利用Q2三极管的基级导通电压为0.6~0.7V这个特性;当Q2三极管导通,Q1三极管基级电压被拉低而截止,负载R1不工作;负载R1流

    2024年02月11日
    浏览(51)
  • Flutter屏幕适配的三种方案

    做移动端开发的同学都知道,针对不同型号和尺寸的手机要进行页面的适配,且 iOS 和 Android 适配方案各不相同,那我们用 Flutter 开发要怎么处理屏幕适配呢? Flutter使用的是类似于iOS中的点pt,也就是point。我们经常说 iPhone8 的尺寸是375x667,但是它的分辨率其实是 750x1334 。因

    2024年02月06日
    浏览(39)
  • 前端安全防线:使用Vue CLI配置代码压缩、加密和混淆功能

    在 Vue 应用程序的开发中,代码压缩、加密和混淆是优化应用程序性能和提高安全性的重要步骤。 Vue CLI 是一个功能强大的开发工具,它提供了方便的配置选项来实现这些功能。本文将介绍如何使用 Vue CLI 配置代码压缩、加密和混淆功能,以提高应用程序的性能和安全性。

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包