【发布时间】:2014-05-20 22:09:42
【问题描述】:
我有 2 个列表。一个是来自我拥有的计算机(ListA)的文件的 MD5 和 SHA1 哈希列表。另一个是我从 NSRL (ListB) 下载的 MD5 和 SHA1 哈希列表。它是对许多不同应用程序中包含的文件的 MD5 和 SHA1 哈希值的编译。
我正在尝试找到一种快速的方法来比较这些列表。
仅作为性能参考,来自系统的哈希是一个 7.2gb 的文本文件,NSRL 哈希列表约为 20gb。我有一个具有 32gb 内存的系统来执行处理,所以它应该有足够的内存来将两个文件都加载到内存中。
我研究了Except,还考虑从 ListA 中读取每一行并将其与 ListB 进行比较,但必须有比这更好的方法。有什么想法吗?
此外,这是将机器的哈希值与哈希数据库中的已知哈希值进行比较。它在取证中非常普遍(据我了解),所以我愿意接受已经存在的应用程序的建议。
【问题讨论】:
-
我很想知道这将用于什么
-
您可以考虑先对列表进行排序。然后使用类似于归并排序的方法进行比较。
-
@Phillippe Leybaert,这是在系统上查找文件时常见的取证做法。获取每个文件的 MD5/SHA1,将其与已知良好文件列表进行比较(或有时将其与已知不良文件列表进行比较),看看有什么突出的。
-
@Sugitime 我知道这是一种常见的取证做法,但我仍然很好奇您的用例是什么。
-
@Phillippe Leybaert,这是一些课堂作业。拍摄系统图像,获取哈希值(我使用了 ftimes),将哈希值与 NSLR db 进行比较。是这个意思吗?