Python hashlib库在区块链技术中的应用
示例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()方法将哈希值转换为十六进制字符串表示。注意,当处理文件时,我们逐块读取文件内容并更新哈希对象,这样可以处理大文件而不会消耗过多内存。
哈希函数的设计使得相同的输入总是产生相同的输出,但不同的输入几乎总是产生不同的输出。因此,哈希函数常用于密码存储、数据完整性校验等场景。然而,请注意哈希函数不是加密函数,它们是不可逆的,即不能从哈希值恢复出原始输入。
评论