MD5 散列目录中的所有文件

MD5 Hashing all files in a directory

我正在尝试制作一个程序,循环遍历目录中的所有文件,然后生成所有 md5 哈希码。

import hashlib, os, sys
for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True):
    for name in files:
        #print(os.path.join(root, name))
FileName = (os.path.join(root, name))

hasher = hashlib.md5()
with open(str(FileName), 'rb') as afile:
    buf = afile.read()
    hasher.update(buf)
print(hasher.hexdigest())

如果有人愿意帮助我,那就太好了。

您需要将文件读取和散列代码移动到循环体内。

import hashlib, os, sys

for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True):
    for name in files:
        #print(os.path.join(root, name))
        FileName = (os.path.join(root, name))

        hasher = hashlib.md5()
        with open(str(FileName), 'rb') as afile:
            buf = afile.read()
            hasher.update(buf)
        print(hasher.hexdigest())