Python中的MD5哈希2025年1月5日 | 阅读 3 分钟 引言在本教程中,我们将学习 Python 中的 MD5 哈希。加密哈希在日常生活中被广泛使用,例如数字签名、数学证明、控制代码、指纹、校验和(完整性检查)、消息哈希、存储密码等。它还用于通过 Internet 发送消息或为了安全起见将消息存储在数据库中。Python 的“hashlib”库中定义了许多哈希函数。本教程解释了 MD5 哈希的定义方式以及它们的工作原理。 什么是哈希?哈希函数接受可变长度的字节数组作为输入,并将其转换为固定长度的序列。但是,很难恢复原始数据(输入字节)。例如,如果 a 是你的输入数据,h 是一个哈希函数,那么计算 h(a) 是快速而简单的,但试图再次检索它是一项非常耗时的任务。哈希函数的返回值称为哈希值或哈希值。 什么是 MD5 哈希?此哈希函数接受一个字节数组序列并返回一个 128 位哈希值。相关函数是
md5 库是一个 Python 库。它提供了一个生成 MD5 哈希的简单接口。该库已被 Python 的 hashlib 库取代,后者可以提供更灵活、更安全的哈希生成接口。大多数算法都实现在 hashlib 模块中,但如果安装了 OpenSSL,hashlib 也可以用来管理算法。首先,你需要导入 hashlib 模块来使用哈希算法。导入命令如下 - 现在检查 hashlib 模块中是否存在所需的算法,或者是否所有算法都存在 - 运行上述代码后,我们发现以下输出 - {'whirlpool', 'sha384', 'sha3_384', 'md5', 'shake_256', 'md5-sha1', 'blake2b', 'ripemd160', 'sha3_224', 'md4', 'blake2s', 'mdc2', 'sha224', 'sha1', 'sha3_256', 'sha512_224', 'sha3_512', 'sha512', 'sm3', 'shake_128', 'sha256', 'sha512_256'} 上面列出的 Hashlib 模块中可用的算法包括 OpenSSL 中的算法。但是要检查始终可用的算法列表,我们可以通过 algorithm_guaranteed 进行检查。 运行上述代码后,我们发现以下输出 - {'blake2b', 'shake_128', 'sha224', 'sha384', 'sha256', 'sha3_384', 'sha1', 'sha3_256', 'sha3_224', 'sha3_512', 'sha512', 'md5', 'shake_256', 'blake2s'} 程序代码 在这里,我们提供了一个 Python MD5 哈希的程序代码。代码如下 - 输出 上面的代码使用字节,并且可以被哈希函数接受。md5 哈希函数对其进行编码,然后使用 digest() 打印等效的编码字节字符串。现在,我们编译上面的代码,找到给定哈希值的等效字节值。因此,找到的输出如下 - The equivalent byte value of the given hash is: b'g\x13\x8b\xbf\x1fy\xf4\xaa\x8e\x00|_o{\x1d\xea' 程序代码 在这里,我们提供了一个 Python MD5 哈希的程序代码,用于查找给定哈希值的等效十六进制值。代码如下 - 输出 上面的代码使用 encode() 函数将字符串转换为等效的字节,以便哈希函数可以接受它。md5 哈希函数对其进行编码,然后 hexdigest() 函数打印等效于哈希值的十六进制值。现在,我们编译上面的代码,找到给定哈希值的等效十六进制值。因此,找到的输出如下 - The equivalent hexadecimal value of the given hash is: 67138bbf1f79f4aa8e007c5f6f7b1dea 下一个主题使用 Python 进行鼠标和键盘自动化 |
Python 是一种高级、解释型编程语言,以其简单性和可读性而闻名,使其成为新手和经验丰富的开发人员的首选。由 Guido van Rossum 创建并于 1991 年首次发布,Python 通过其对……的使用强调了代码的可读性。
阅读 4 分钟
简介:字典是 Python 中一种可变数据结构,用于存储键值对集合。它定义在大括号 {} 之间,每个键值对之间用冒号 : 分隔。与列表或元组不同,字典是无序的,这意味着项目不...
阅读 4 分钟
Python 中的列表推导式是一种创建列表的简洁而强大的方法。它们通过对可迭代对象的每个项应用一个表达式,提供了一种语法上紧凑且可读性强的方式来生成列表。虽然列表推导式被广泛使用和赞赏,但嵌套列表推导式……
阅读 4 分钟
在这个问题中,我们将给出 N 本书和 M 名学生。此外,还给出每本书的页数。包含页数的数组是已排序的...
7 分钟阅读
? Python 用于数据分析、AI 和 Web 脚本,它拥有无数使处理数据库变得容易的库。然而,Python 并不原生支持 JDBC(Java 数据库连接),这是 Java 应用程序中常见的数据库访问方式。幸运的是,有办法...
7 分钟阅读
? 字符串是一组字母,可以代表整个短语或只是一个单词。由于它们可以用或不带说明符定义,并且不需要显式声明,因此 Python 中的字符串易于使用。Python 具有内置的过程和...
阅读 4 分钟
?在开发机器学习模型时,将数据分成两部分至关重要:训练和测试。训练数据的主要目的是帮助理解和掌握模型的假设,而测试数据用于评估...
18 分钟阅读
? Python 中文件迭代的介绍和目的 文件迭代是 Python 中一种关键的迭代方式,它允许软件工程师探索和协作处理目录中的文件。它是各种应用程序的重要组成部分,提供了有效管理和控制数据存储的必要资源...
阅读 12 分钟
?简介 对于 Python 中的健壮编程,确定对象是否具有特定属性至关重要。内置函数 hasattr() 可用于确定属性是否存在。对象和字符串形式的属性名称是 hasattr() 所需的两个输入……
阅读 6 分钟
《猜字游戏》:想象一下您可能和朋友一起玩的经典猜词游戏。一个人选择一个单词或几个单词,其他人必须在一定次数的尝试中猜出它是什么。这是一个快速、简单且具有教育意义的游戏,通常...
21 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India