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

使用Python计算文件夹中所有文件的SHA384哈希值

发布时间:2024-01-08 21:17:15

要计算文件夹中所有文件的SHA384哈希值,我们可以使用Python的hashlib库来实现。

首先,我们需要导入hashlib库:

import hashlib

然后,我们可以定义一个函数来计算文件的SHA384哈希值:

def calculate_sha384(file_path):
    # 创建SHA384哈希对象
    sha384_hash = hashlib.sha384()
  
    # 打开文件,使用二进制读取模式
    with open(file_path, 'rb') as file:
        # 逐块读取文件内容
        for chunk in iter(lambda: file.read(4096), b''):
            # 更新哈希值
            sha384_hash.update(chunk)
  
    # 返回计算得到的哈希值的十六进制表示
    return sha384_hash.hexdigest()

接下来,我们可以定义一个函数来遍历文件夹中的所有文件,并计算它们的SHA384哈希值:

import os

def calculate_folder_hashes(folder_path):
    # 遍历文件夹中的所有文件和子文件夹
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            # 构建文件的完整路径
            file_path = os.path.join(root, file)
  
            # 计算文件的SHA384哈希值
            file_hash = calculate_sha384(file_path)
  
            # 打印文件路径和哈希值
            print(f"{file_path}: {file_hash}")

最后,我们可以调用calculate_folder_hashes函数并传入文件夹路径来计算文件夹中所有文件的SHA384哈希值:

folder_path = 'path/to/folder'
calculate_folder_hashes(folder_path)

使用例子:

假设我们有一个名为"test"的文件夹,其中包含以下文件:

- test/file1.txt

- test/file2.txt

- test/subfolder/file3.txt

我们可以使用上述代码计算"test"文件夹中所有文件的SHA384哈希值:

folder_path = 'test'
calculate_folder_hashes(folder_path)

输出将会是:

test/file1.txt: 639de770cad60111b59f28b2e2454768d920add6414ecd2475e7c22c8e31d61983c55793f2539bd0e351f2a4de248fb3
test/file2.txt: fe7c8e55e3495229aae6797b7e84e8c2e60b0e9dd7fa99b442a2b758451f092dca654259dbb1429a690e37d511cb71d2
test/subfolder/file3.txt: adc1f7e94b79d89b6426482ad538ac3446799b137cc7ad12162856b4e34a00b50badd57f436a08baee1dd287763d6135

如上所示,我们成功计算了文件夹中所有文件的SHA384哈希值。