欢迎访问宙启技术站
智能推送

在Python中使用SHA256算法对文件进行完整性校验

发布时间:2023-12-25 18:39:40

在Python中,可以使用hashlib库来使用SHA256算法对文件进行完整性校验。以下是使用SHA256算法对文件进行完整性校验的示例代码:

import hashlib

def calculate_hash(file_path):
    # 创建SHA256对象
    sha256_hash = hashlib.sha256()
    
    # 以二进制方式打开文件
    with open(file_path, 'rb') as file:
        # 逐块读取文件内容并更新哈希对象
        for chunk in iter(lambda: file.read(4096), b''):
            sha256_hash.update(chunk)

    # 获取SHA256哈希值
    return sha256_hash.hexdigest()

def verify_integrity(file_path, expected_hash):
    # 计算文件的哈希值
    calculated_hash = calculate_hash(file_path)
    
    # 将计算得到的哈希值与预期的哈希值进行比较
    if calculated_hash == expected_hash:
        print("文件完整性校验通过")
    else:
        print("文件完整性校验失败")

# 指定文件路径
file_path = "example.txt"

# 预计的哈希值
expected_hash = "12e2f71332c19927a8b2b2106e1c49a1d23f94a04352c0a9ea59962c5dc5a38f"

# 对文件进行完整性校验
verify_integrity(file_path, expected_hash)

首先,我们需要定义一个calculate_hash函数,该函数接收文件路径作为参数。在函数内部,我们使用hashlib.sha256()创建一个SHA256对象,并以二进制方式打开文件。然后,我们使用一个循环逐块读取文件内容,并使用update方法更新SHA256哈希对象。最后,我们使用hexdigest方法获取SHA256哈希值,并将其返回。

然后,我们定义一个verify_integrity函数,该函数接收文件路径和预期的哈希值作为参数。在函数内部,我们调用calculate_hash函数计算文件的哈希值,并将其与预期的哈希值进行比较。如果两个哈希值相等,则打印"文件完整性校验通过";否则,打印"文件完整性校验失败"。

在示例代码的最后,我们指定一个文件路径和预期的哈希值,并使用verify_integrity函数对文件进行完整性校验。你可以将示例代码保存为一个Python文件并运行,替换example.txt为你想要校验的文件路径,替换expected_hash为你期望的哈希值。如果文件的哈希值与预期的哈希值相等,则表示文件完整性校验通过。