使用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哈希值。
