gpt4 book ai didi

hash - 需要更快的 Linux 指纹/哈希比较的建议

转载 作者:行者123 更新时间:2023-12-04 06:30:10 28 4
gpt4 key购买 nike

我目前在非常轻量级(低处理器/低内存)的 Linux 设备上的 bash 脚本中使用 linux md5sum 命令来返回并记录单个目录中数千个名称相似的 32MB 文件的校验和。

md5sum ./file* >fingerprint.txt

第二天,我对同一组文件重复该过程,并以编程方式比较前一天哈希的结果。当我发现文件的指纹在第 1 天和第 2 天之间发生变化时,我会对该特定文件采取措施。如果文件保持不变,我不采取任何行动并继续比较。

我遇到的问题是 md5 方法需要很长时间来处理每个文件。比较需要在特定时间范围内完成,我开始遇到整个过程花费太长时间的事件。

我可以使用其他方法/工具来可靠地执行这种比较吗? (注意,对文件进行日期比较是不够的,文件大小保持恒定的 32MB)

最佳答案

MD5 应该是加密哈希函数中速度最快的。但是任何给定的实现都可能做出选择,在特定机器上,这意味着性能不佳。你使用什么样的硬件?处理器类型和 L1 缓存大小非常重要。

您可能想看看 sphlib :这是一个用 C(优化但可移植)和 Java 实现许多加密哈希函数的库。 C 代码可以使用额外的“小占用空间”标志进行编译,这有助于小型嵌入式平台(主要是由于 L1 缓存大小问题)。此外,该代码还附带一个类似于 md5sum 的命令行实用程序和一个速度基准工具。

在哈希函数中,MD4 通常是最快的,但在某些平台上 Panama、Radiogatun[32] 和 Radiogatun[64] 可以达到类似或更好的性能。您可能还想看看一些 SHA-3 候选者,尤其是 Shabal,它在小型 32 位系统上速度相当快。

重要说明:一些散列函数“损坏”,因为可能会产生冲突:两个不同的输入文件,它们散列为相同的值(这正是您想要避免的)。 MD4 和 MD5 因而被“破坏”。但是,碰撞必须是有意的;您不会碰上(坏)运气(概率小于由于计算过程中的硬件错误而发生“碰撞”)。如果您处于与安全相关的情况下(有人可能想主动挑起碰撞),那么事情就更难了。在我引用的那些函数中,Radiogatun 和 Shabal 函数目前未被破坏。

关于hash - 需要更快的 Linux 指纹/哈希比较的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522135/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com