Python代码部署的三种加密方案,其中一种你肯定不知道

news2025/1/11 16:48:15

文章目录

    • 前言
    • 一、代码混淆
    • 二、代码打包
    • 三、代码编译
      • 3.1 pyarmor快速使用
      • 3.2 pyarmor进阶使用
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道


前言

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

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

一、代码混淆

代码混淆主要是改变一些函数名、变量名。可使用 Oxyry 对关键源码进行混淆,效果如下:

在这里插入图片描述

这种只是降低了代码可读性,严格意义上算不上是加密,不过针对足以应对一大半甲方了(哈哈哈)

二、代码打包

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

三、代码编译

这里使用 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 )。加密后端的代码长这样:

在这里插入图片描述

对于不同操作系统,会编译生成不同格式的动态链接库文件:

在这里插入图片描述

生成的dist目录内容如下:

在这里插入图片描述

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

3.2 pyarmor进阶使用

设置过期时间:执行代码 pyarmor licenses --expired 2022-01-01 r001,则在dist同级的当前目录生成 licenses 文件夹:

在这里插入图片描述

此外,如果要绑定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 文件夹也没啥用)。


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tNavigator 23.2 x64

Rock Flow Dynamics(RFD)很高兴地宣布发布我们旗舰产品tNavigator的最新版本。版本 23.2 现在可供用户使用。 tNavigator长期以来一直被认为是油藏工程师和地质学家的强大工具,可为复杂的油藏行为提供准确的建模和模拟。最新版本为所有模块带…

uni-app 微信小程序之整合colorui

1. 介绍 ColorUI uni-app版本支持多端,兼容性经过近上万使用者测试、反馈、改进,目前已非常稳定! 说白了,就是uni-app版本的 tailwindcss,只是uni-app版本更适合使用 colorui 2. 开始 下载源码解压获得 /Colorui-U…

钉钉提交审批意见,并上传附件接口集成

一:适配器 DingtalkApprovalFilesExecute 参考方案链接:轻易云数据集成平台 二:请求接口。配置参数 接口文档:使用了新旧接口 服务端API发起带有附件的审批流并下载附件 - 钉钉开放平台 接口:topapi/processinsta…

mac 配置hosts

hosts 目录 /etc/hosts 配置方式 ip 域名 保存退出后运行:(清楚dns缓存) sudo killall -HUP mDNSResponder

(C++)和为s的两个数字--双指针算法

个人主页:Lei宝啊 愿所有美好如期而遇 和为S的两个数字_牛客题霸_牛客网输入一个升序数组 array 和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果。题目来自【牛客题霸】https://www.nowcoder.com/practice/390da4f7a…

网工学习9-STP配置

如图 1 所示,当前网络中存在环路, SwitchA 、SwitchB 、SwitchC 和 SwitchD 都运行 STP,通过 彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无 环路的树形网络结构&#xff…

PAD平板签约投屏-高端活动的选择

传统的现场纸质签约仪式除了缺乏仪式感之外还缺少互动性,如果要将签约的过程投放到大屏幕上更是需要额外的硬件设备成本。相比于传统的纸质签约仪式,平板现场电子签约的形式更加的新颖、更富有科技感、更具有仪式感。 平板签约投屏是应用于会议签字仪式的…

Excel如何设置在未打印时显示虚线打印时不显示虚线

记得之前分享过一个BOM表模板,但是在我打印时,发现明明是留空白的地方却打印出来的虚线 后来,看了自己的页面布局,原来是网格线设置错误了 当我设置为查看时显示网格线,打印时不显示网格线,这样就正常了

WPS项目编号(序号)无法继续前一列表

问题:在编写文档中,序号无法继续前一列表,序号之间无法自动连接。 解决方法:使用格式刷。格式刷是复制格式的操作,可以用于选中已有格式的单元格,复制到需要设置格式的单元格。 参考文章:在wps…

前端可视化大屏自适应终极解决方案autofit.js

可视化大屏适配/自适应现状 可视化大屏的适配是一个老生常谈的话题了,现在其实不乏一些大佬开源的自适应插件、工具但是我为什么还要重复造轮子呢?因为目前市面上适配工具每一个都无法做到完美的效果,做出来的东西都差不多,最终实…

编程题:电话号码

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 📑题目解析 这个题目比较…

小程序1rpx边框不完美

问题展示 原因 rpx类似rem,渲染后实际转换成px之后可能存在小数,在不同的设备上多多少少会存在渲染的问题。而1rpx的问题就更加明显,因为不足1个物理像素的话,在IOS会进行四舍五入,而安卓好像统一向上取整&#xff0c…

Mars3d标绘的时候通过绑定单击事件,查询点击落点的图层类型

需求期望: 期望可以判断标绘点落下的位置是什么图层类型,例如是否是3dtitles模型,或者是gltf模型,或者是其他数据图层。 需求来源: 标绘点时,无法知道点落下的地方的图层类型 解决方案: ma…

【c】角谷猜想

#include<stdio.h> int coll(int x)//定义函数 {int count0;while(x>1){if(x%20){xx/2;count;}else{x3*x1;count;}}return count; } int main() {int n,num;scanf("%d",&n);int arr[n1];for(int i1;i<n;i)//输入n组数据保存到数组中{scanf("%d&…

详细流程来教你使用接码平台(内列举多平台的账号单价)

在现在社交网络和在线服务的普及下&#xff0c;我们经常需要提供电话号码来注册账户、接收验证码等。但是现在对于电话号码的实名验证越来越严格&#xff0c;而且对于出海企业来说有些网站需要使用国外的账号来进行注册。所以这个时候就需要用上接码平台&#xff0c;他们会通过…

(03)vite 处理 css

文章目录 系列全集vite 处理css流程vite如何解决协同开发&#xff0c;样式重复覆盖的问题&#xff1f;使用less通过配置&#xff0c;更改vite的css默认行为 系列全集 &#xff08;01&#xff09;vite 从启动服务器开始 &#xff08;02&#xff09;vite环境变量配置 &#xff…

助力业务协同:品牌商与经销商ERP系统的完美对接

助力业务协同&#xff1a;品牌商与经销商系统的完美对接 品牌方全链路数字营销系统的目的是为了提升营销效率、实现一致的品牌形象、深化用户洞察、加强与经销商合作以及提升营销效果评估。建立统一的数字营销平台可以帮助品牌方更好地管理和整合各个渠道上的营销活动&#xff…

Bishop新著 - 深度学习:基础与概念 - 前言

译者的话 十几年前&#xff0c;笔者在MSRA实习的时候&#xff0c;就接触到了Christopher M, Bishop的经典巨著《Pattern Recogition and Machine Learning》(一般大家简称为PRML)。Bishop大神是微软剑桥研究院实验室主任&#xff0c;物理出身&#xff0c;对机器学习的基本概念…

【C++11/线程相关】thread类编写多线程、mutex互斥锁和lock_guard、atomic原子类型

目录 通过thread类编写C多线程程序线程间互斥——mutex互斥锁和lock_guardmutex互斥锁lock_guard 线程间通信C11实现生产者与消费者模型 基于CAS操作的atomic原子类型 橙色 通过thread类编写C多线程程序 为什么结果没有子线程中所打印的字符串呢&#xff1f;因为通过detach进…

语音合成与配音工具(视频配音、微课配音、有声读物、产品营销)

在数字时代&#xff0c;语音技术的崛起正在改变我们与技术互动的方式。现在&#xff0c;我给大家介绍一款很赞的工具——AI文字转语音配音神器&#xff0c;为您的文字赋予生动、自然的声音&#xff0c;全新的沉浸式体验即将改变您的创作方式&#xff01;非常适合用于视频配音、…