Python 中的加密包2024年8月29日 | 阅读 7 分钟 在接下来的教程中,我们将学习 Python 编程语言中用于加密的包,并通过不同的示例进行说明。 那么,让我们开始吧。 理解加密包加密是在数据从一台计算机传输到另一台计算机时保护有用信息或在计算机上存储数据的实践。加密涉及将明文加密为密文,并将密文解密为明文。Python 支持 cryptography 包,该包允许我们加密和解密数据。cryptography 包的 fernet 模块具有核心功能,可通过 encrypt() 和 decrypt() 方法分别生成密钥、将明文加密为密文以及将密文解密为明文。 如何安装 Python cryptography 包?要安装 Python 包,我们需要 'pip',这是一个用于管理软件包的框架,可以从受信任的公共存储库安装模块。一旦我们有了 'pip',我们就可以在 Windows 命令提示符 (CMD) 或终端中使用如下命令安装 cryptography 库。 语法 验证安装模块安装完成后,我们可以通过创建一个空的 Python 程序文件并写入如下 import 语句来验证它: 文件:verify.py 现在,保存上述文件并在终端中使用以下命令执行它: 语法 如果上述 Python 程序文件没有返回任何错误,则表示模块已正确安装。但是,如果出现异常,请尝试重新安装该库,并建议参考该库的官方文档。 理解 Fernet (对称加密)Fernet 是对称(也称为“密钥”)认证加密的实现。Fernet 保证我们无法在没有密钥的情况下进一步操纵或读取使用它加密的数据。Fernet 还支持通过 MultiFernet 实现密钥轮换。 现在让我们通过一些 Fernet 类及其方法来详细了解加密的概念。 class cryptography.fernet.Fernet(key)此类提供加密和解密功能。此类接受 key 作为输入参数。此 key 参数是 URL 安全的 base64 编码的 32 字节密钥。必须将其保密。拥有此密钥的任何人都可以创建和读取消息。 现在,在我们查看 Fernet 类的一些方法之前,让我们看一个简单的示例来演示其用法。 示例 1 输出 Encrypted Message: b'gAAAAABiZAj1lcmLXPbRJng9wxgowFB731MLUFu-nstC8Sdnzn24y_lhu_h1QmR5N68d_DdpH8mIGNF6Y-7PgSmgUYkxwouw7R80lWk1k9IPp7MiKtv5O3OWmG6gk4rK4k5iNzE5sPd-L_ns0Zn8nmG2Zr--QDUi2Q==' Decrypted Message: b'Hello, Students! Welcome to Python tutorial at Javatpoint.com' 说明 在上面的代码片段中,我们从 cryptography 包的 fernet 模块导入了 Fernet 类。然后,我们使用名为 generate_key() 的类方法来生成密钥。然后,我们使用该密钥通过 encrypt() 方法将明文转换为密文,并打印加密的消息。然后,我们再次使用该密钥通过 decrypt() 方法将密文转换为明文,并为用户打印解密的消息。 我们可以看到解密后的输出在原始消息前面有一个 'b',这表示 byte 格式。但是,在打印原始消息时,我们可以使用 decode() 方法将其删除。让我们看一个演示 decode() 方法实现的以下示例。 示例 2 输出 Encrypted Message: b'gAAAAABiZrxrUg61HeVbOke04ftXTKnl17z3e8LjHfLMiCPQ2ZQ4Hz43bL1twbcS4cXcsclsUZKT-q3oyWVecKH39hgEgh1GQaB4E1gkMJr1Q6LbC93N97yeFq0kME_ttc-BVrXCGZBzNPRdW1zl45v7ow-d893kkMiab-y1OSMjbVFL9nK_iZE=' Decrypted Message: This example demonstrates the implementation of the decode() method. 说明 在上面的代码片段中,我们从 cryptography 包的 fernet 模块导入了 Fernet 类。然后,我们使用名为 generate_key() 的类方法来生成密钥。然后,我们使用该密钥通过 encrypt() 方法将明文转换为密文,并打印加密的消息。然后,我们再次使用该密钥通过 decrypt() 方法将密文转换为明文。最后,我们使用 decode() 方法将消息从 byte 转换为 string,并为用户打印。 现在让我们了解我们之前使用的方法的工作原理。
|
基础/先决知识简介:'Pandas'是Python最杰出的库之一。它广泛应用于机器学习和数据分析的不同应用中。使用Pandas,程序员可以创建、读取和操作大量数据,并处理任何文件...
7 分钟阅读
二叉搜索树是更通用的二叉树的后代,带有一些约束。在二叉搜索树中,节点的排列应遵循某些属性。这些属性是:树的所有父节点的值应大于子节点...
阅读 13 分钟
简介:在本文中,我们将讨论 Python linter。每天我们都被各种美好的规则包围着,这些规则让生活轻松很多。例如,司机应该遵守交通规则。因此,每位司机都知道如何在道路上行事以及必须遵守哪些规定……
阅读 6 分钟
众所周知,毫无疑问,加密货币的流行度在过去几年中急剧上升,而试图理解区块链的工作原理和比特币可能令人烦恼和困惑。有区块链、合约、账本,甚至更多...
阅读 8 分钟
?我们将学习 sklearn 库以及如何使用它来实现机器学习算法。在现实世界中,我们不希望每次需要使用时都构建一个复杂的算法。尽管从头开始创建算法很棒...
阅读 10 分钟
我们想要知道给定过程何时完成以及任务完成了百分之多少,这是非常基本的人性。这是因为当一个过程在进行时,我们会变得非常不耐烦,我们只能...
7 分钟阅读
好的卷积网络是庞大的机器,拥有许多隐藏层和数百万个参数。“隐藏层越多,网络越好”实在是一个糟糕的格言。一些著名的网络包括 ResNet、AlexNet、VGG、Inception 等。为什么这些网络如此有效?如何……
阅读 10 分钟
基础/必备知识简介:字典是 Python 中可用的数据类型之一。如果您熟悉集合和列表,那么字典就是另一种数据存储方式。从正式定义来看,字典是存储在...中的无序数据集合。
阅读 3 分钟
我们在日常生活中都遇到过很多情况,需要使用数据库管理系统来存储所有需要的信息和数据。使用数据库管理系统通常非常简单,但有时会变得有点...
阅读 12 分钟
在您的 Python 之旅中,您可能需要在某个不确定的点找到 Python 可迭代对象(如列表或字典)中的第一个满足特定要求的项。唯一的例外是当需要确认“一个”特定项是否存在于……
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India