Python hashlib库在区块链技术中的应用

Connor 火币pro 2024-05-29 40 0

示例1:计算字符串的MD5哈希值

python

import hashlib

# 原始字符串

original_string = "Hello, world!"

meirunhb.com/2Gp8MPQG

qianjilight.com/2Ks8YVRJ

zhiqibz.com/1Zd1TXIG

crabaike.com/5Uq8VDGE

njfets.com/6Bv8KIKZ

rld-china.com/4Rv2YFMS

manmanniao.com/9Wb3OWXU

hongcexunhu.com/1Md9IXKG

jnxyksjx.com/4Ij7PDPM

# 创建一个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()方法将哈希值转换为十六进制字符串表示。注意,当处理文件时,我们逐块读取文件内容并更新哈希对象,这样可以处理大文件而不会消耗过多内存。

哈希函数的设计使得相同的输入总是产生相同的输出,但不同的输入几乎总是产生不同的输出。因此,哈希函数常用于密码存储、数据完整性校验等场景。然而,请注意哈希函数不是加密函数,它们是不可逆的,即不能从哈希值恢复出原始输入。

评论