混淆 Python 程序17 Mar 2025 | 4 分钟阅读 在接下来的教程中,我们将了解如何混淆 Python 程序。我们将使用一个名为 **pyarmor** 的 Python 包来进行混淆。 出于某些原因,我们有时可能需要将代码直接交付给客户。但是,通过执行此类操作,我们将失去对代码的控制。在这种情况下,我们可以加密脚本来保护它,保留控制权,并包含一些用于控制依赖项的回退条件,就像我们将代码交付给只使用一定时间的用户一样。 在接下来的教程中,我们将使用具有上述功能的一个函数来解决上述问题。我们将使用 **pyarmor** Python 库来混淆任何 Python 代码。 那么,我们开始吧。 创建一个基本函数我们将从创建一个新的 Python 程序文件开始,以便对 Python 代码实现混淆。在该文件内,我们将定义一个推理函数,稍后对其进行加密。 让我们考虑以下代码片段作为推理函数。 文件:func.py 输出 Hello Peter Parker, the inference function has been initiated successfully Your license has been expired, please contact us. 说明 在上面的代码片段中,我们导入了一些必需的模块。然后,我们将一个推理函数定义为 **infer()**,它接受两个参数 - **person_name** 和 **tag = True**。然后,我们为正在调用推理函数的用户打印了一条语句。稍后,我们定义了一个名为 **atr** 的变量来存储当前日期,以及一个名为 **resp** 的字符串变量。我们还将一个名为 **expiration_year** 的变量赋值为 **2023**。然后,我们使用 **try-exception** 方法来处理可能引发的任何异常。最后,我们使用 **if-else** 条件语句根据情况打印一条语句。最后,我们将 **__name__** 赋值为 "**__main__**" 来执行推理函数。 现在,让我们将此 python 文件保存在一个文件夹中。 ![]() 使用 pyarmor 加密文件使用 **pyarmor** 加密文件的过程分为两步。 步骤 1:安装 pyarmor 包 我们可以使用 pip 安装程序安装 **pyarmor** 包,如下所示。 语法 ![]() 步骤 2:加密 Python 文件 我们可以通过在命令提示符中键入以下命令来加密文件。 语法 现在,让我们在 func.py 文件上实现上述命令。 语法 ![]() 现在,如果我们打开包含原始 **func.py** 文件的文件夹,我们将看到一个名为 **dist** 的新子文件夹。 在 **dist** 文件夹中,我们将找到另一个名为 **pytransform** 的文件夹和一个加密的 **func.py** 文件。 现在,让我们看看这个文件中的内容。 文件:func.py (已加密) ![]() 导入推理函数完成后,直到本节,现在让我们尝试将此加密的 func.py 导入到一个新的 python 文件中,名为 **new.py**,该文件位于 **dist** 文件夹内。 **pyarmor** 会处理允许我们在运行时解密 func.py 的必需密钥。它的存在位于 **pytransform** 文件夹中;因此,使代码无法被他人阅读。 但是,如果我们想对实际的 **func.py** 脚本进行一些修改,我们必须从第 1 步开始,并继续遵循相同的步骤。 ![]() 让我们考虑以下代码片段,我们必须将其键入 new.py 文件中。 文件:new.py 输出 Hello Tony Stark, the inference function has been initiated successfully Your license has been expired, please contact us. 说明 在上面的代码片段中,我们将 **func.py** 的推理函数导入到我们创建的新 python 文件 **new.py** 中。然后,我们使用与 **func.py** 相同的配置执行了该函数。 |
问题是给定一个整数数组,我们需要找到数组中的第 k 个最小元素,其中 k 是一个小于或等于数组长度的正整数。让我们看下面的示例。示例 - 输入:arr = [7, 4, 6, 3,...
5 分钟阅读
Python 中的可变和不可变数据类型 可变或不可变是用来解释数据类型在初始化后是否能够被更新的属性的专业术语。基本解释如下:可变对象是指其内部状态可以改变的对象。在...
7 分钟阅读
您可以使用开源的Selenium测试自动化工具创建脚本来自动化Web浏览器。它常用于在线应用程序测试,并与多种编程语言兼容,包括Python、Java、C#和Ruby。通过使用Web驱动程序,该程序可以管理浏览器并模拟...
阅读 6 分钟
Python 数组和列表是 Python 的重要数据结构。列表和数组都用于在 Python 中存储数据。这些数据结构允许我们进行索引、切片和迭代。但它们彼此之间略有不同。在本教程中,...
阅读 3 分钟
为了理解 Brython 的工作原理,我们首先必须使用我们喜欢的方法安装 brython,这在“如何安装 Brython 文章”中已经讨论过。在讨论 brython 的工作原理之前,我们应该了解以下几点:如何在 JavaScript 中实现 python 如何将 Python 翻译成 JavaScript 并且还...
5 分钟阅读
天气 API 允许开发人员访问当前和历史天气数据,以便在他们的应用程序中使用。这些 API 通常以易于被 Python 等编程语言使用的数据格式提供数据。在本文中,我们将探讨如何使用 Python 来...
阅读 4 分钟
为了在以后使用,开发者有时可能希望通过网络传输复杂的对象命令来保存其对象的内部状态。开发者可以使用Python标准库支持的Pickle模块的序列化过程来实现这一点。我们将...
阅读 15 分钟
- sign()、signbit()、copysign() 大家好!我们已经知道 NumPy 包含许多用于在 Python 中执行数字运算的有用函数。今天,让我们学习一些名为 sign()、signbit()、copysign() 的函数。这些函数只能在 Python 中应用...
阅读9分钟
在本教程中,我们将讨论 Python 中的三角余弦 (cos) 函数。我们将讨论可用于在 Python 程序中实现 cos 函数的模块。我们还将学习如何在...中绘制使用 cos 函数的图形。
5 分钟阅读
Firebase 是 python 提供的一个库,用于使用 Firebase 提供的各种服务,因此为了更好地理解 Firebase 库,我们需要首先了解 Firebase 及其提供的不同服务...
阅读 22 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India