【发布时间】:2021-09-27 22:06:55
【问题描述】:
有人可以帮我解决这个问题吗? python的初学者,但需要高级脚本来做哈希检查 (我的想法是让脚本将每个文件的哈希值与“malicious_hash.txt if match then print MATCH FOUND”进行比较)
import os
import hashlib
hashtype = "MD5"
malicious_hash = ("C:/Users/user/Downloads/malicious_hash.txt")
with open(malicious_hash, 'rb')as f:
lines = f.readlines()
print(lines)
def cal_file_md5(filt_path):
with open(filt_path, "rb") as f:
file_hash = hashlib.md5()
while chunk := f.read(1024 * 1024):
file_hash.update(chunk)
return file_hash.hexdigest()
def cal_folder_hash(folder):
if not os.path.exists(folder):
print("Folder doesn't exist %s" % folder)
return
for file in os.listdir(folder):
path = os.path.join(folder, file)
if os.path.isdir(path):
cal_folder_hash(path)
else:
print("File: %s" % path)
md5 = cal_file_md5(path)
print("MD5: %s\n" % md5)
cal_folder_hash("C:/Users/user/Downloads")
【问题讨论】:
-
你卡在哪里了?您似乎已经完成了所有困难的部分,您只需将
cal_file_md5()返回的每个文件的 md5 与“恶意”的 md5 进行比较,并在它们相等时打印文件名和/或“找到匹配”,而不是只是打印名称和哈希值 -
是的,整个脚本是从其他地方获取的,我仍然理解代码的内容,但我不知道如何组合它并将“malicious_hash.txt”中的给定哈希值与文件,如果匹配,它将显示“匹配!”如果你是程序员,能给我一些建议或指导吗?
标签: python python-3.x python-2.7 hash md5