Python中的MD5哈希
密码散列在日常生活中使用,例如数字签名、消息验证码、操纵检测、指纹、校验和(消息完整性检查)、散列表、密码存储等等。它们还用于通过网络发送消息以确保安全或将消息存储在数据库中。 Python的“ hashlib ”库中定义了许多哈希函数。
本文处理 MD5 哈希的解释和工作。
MD5 哈希
该哈希函数接受字节序列并返回128 位哈希值,通常用于检查数据完整性,但存在安全问题。
相关功能:
- encode() :将字符串转换为哈希函数可以接受的字节。
- digest() :以字节格式返回编码数据。
- hexdigest() :以十六进制格式返回编码数据。
下面的代码演示了 MD5 哈希接受字节并作为字节输出的工作。
# Python 3 code to demonstrate the
# working of MD5 (byte - byte)
import hashlib
# encoding GeeksforGeeks using md5 hash
# function
result = hashlib.md5(b'GeeksforGeeks')
# printing the equivalent byte value.
print("The byte equivalent of hash is : ", end ="")
print(result.digest())
输出:
The byte equivalent of hash is : b'\xf1\xe0ix~\xcetS\x1d\x11%Y\x94\\hq'
解释:上面的代码是字节,可以被哈希函数接受。 md5 散列函数对其进行编码,然后使用 digest() 打印字节等效编码字符串。
下面的代码演示了如何将字符串作为输入并输出与编码值等效的十六进制。
# Python 3 code to demonstrate the
# working of MD5 (string - hexadecimal)
import hashlib
# initializing string
str2hash = "GeeksforGeeks"
# encoding GeeksforGeeks using encode()
# then sending to md5()
result = hashlib.md5(str2hash.encode())
# printing the equivalent hexadecimal value.
print("The hexadecimal equivalent of hash is : ", end ="")
print(result.hexdigest())
输出:
The hexadecimal equivalent of hash is : f1e069787ece74531d112559945c6871
说明:上面的代码接受字符串并使用 encode() 将其转换为等效的字节,以便散列函数可以接受它。 md5 哈希函数对其进行编码,然后使用 hexdigest(),打印十六进制等效编码字符串。