Python hashlib库:哈希函数的未来趋势

[复制链接]
作者: acoputojos | 时间: 2024-5-24 19:51:35 | 其他|
0 65

5104

主题

5104

帖子

1万

积分

博士后

Rank: 11Rank: 11Rank: 11Rank: 11

积分
15314
发表于 2024-5-24 19:51:35| 显示全部楼层 |阅读模式
当使用Python的hashlib库时,你可以计算各种哈希值,如MD5、SHA1、SHA256等。以下是一些使用hashlib库的代码示例:
示例1:计算字符串的MD5哈希值
python
import hashlib  
# 原始字符串  
original_string = "Hello, world!"  
# 创建一个md5 hash对象  
md5_hash = hashlib.md5()  
# 提供需要哈希的数据,必须是bytes类型  
md5_hash.update(original_string.encode('utf-8'))  
# 获取十六进制哈希值  
hex_dig = md5_hash.hexdigest()  
print(f"The MD5 hash of '{original_string}' is: {hex_dig}")
示例2:计算文件的SHA256哈希值
python
import hashlib  
# 文件路径  
file_path = 'example.txt'  
# 创建一个sha256 hash对象  
sha256_hash = hashlib.sha256()  
# 以二进制模式打开文件  
with open(file_path, 'rb') as file:  
# 逐块读取文件内容并更新哈希对象  
while True:  
chunk = file.read(4096) # 读取4096字节  
if not chunk:  
break  
sha256_hash.update(chunk)  
# 获取十六进制哈希值  
hex_dig = sha256_hash.hexdigest()  
print(f"The SHA256 hash of '{file_path}' is: {hex_dig}")
示例3:比较两个字符串的哈希值是否相同
python
import hashlib  
# 两个需要比较的字符串  
string1 = "Password123"  
string2 = "password123"  
# 计算两个字符串的哈希值  
hash1 = hashlib.sha256(string1.encode('utf-8')).hexdigest()  
hash2 = hashlib.sha256(string2.encode('utf-8')).hexdigest()  
# 比较哈希值  
if hash1 == hash2:  
print("The strings have the same hash.")  
else:  
print("The strings have different hashes.")
在上面的示例中,我们计算了字符串和文件的哈希值,并使用hexdigest()方法将哈希值转换为十六进制字符串表示。注意,当处理文件时,我们逐块读取文件内容并更新哈希对象,这样可以处理大文件而不会消耗过多内存。
哈希函数的设计使得相同的输入总是产生相同的输出,但不同的输入几乎总是产生不同的输出。因此,哈希函数常用于密码存储、数据完整性校验等场景。然而,请注意哈希函数不是加密函数,它们是不可逆的,即不能从哈希值恢复出原始输入。

来源:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部