gpt4 book ai didi

c# - 合并多个文件的 MD5 哈希值

转载 作者:太空狗 更新时间:2023-10-29 21:09:41 25 4
gpt4 key购买 nike

我有 7 个文件正在为其生成 MD5 哈希值。哈希用于确保数据存储的远程副本与本地副本相同。不幸的是,这两个数据副本之间的链接速度慢得令人 NumPy 。对数据的更改很少见,但我要求始终(或尽快)同步数据。我不想在我的(极慢的)通信链路上传递 7 个不同的 MD5 哈希值,我想为每个文件生成哈希值,然后将这些哈希值组合成一个哈希值,然后我可以传输该哈希值,然后重新计算/用于比较在远端。如果“组合散列”不同,那么我将开始发送 7 个单独的散列来确定哪些文件已被更改。例如,这是截至上周的 7 个文件的 MD5 哈希值:

0709d609d69385255c496436eb50402c
709465a74411bd596595c7b9b158ae6a
4ab657320ef33e3d5eb498e4c13d41b7
3b49c6ab199994fd776bb63761414e72
0fc28c5a010fc3c06c0c930c88e31a15
c4ecd214662cac5aae0e53f6f252bf0e
8b086431e43148a2c2d943ba30d31cc6

我想将这些散列组合在一起,以便获得一个唯一值(也许是另一个 MD5 散列?),然后我可以将该值发送到远程系统。在远程系统上,我将执行相同的计算以确定整个数据是否已更改。如果有,那么我将开始发送单个散列等。最重要的因素是我的“组合散列”足够短,因此它使用的带宽比首先发送所有 7 个散列更少。我想将 7 个 MD5 哈希值写入一个文件,然后对该文件进行哈希处理,但有没有更好的方法?

最佳答案

你为什么不:

  • 生成 7 个 MD5 哈希值(这就是您现在正在做的),然后
  • 将这 7 个哈希输出组合成一个更大的字节数组和 MD5 哈希,以生成一个整体哈希。 (每个 MD5 散列为 16 个字节,因此您最终将得到一个 112 字节的数组,您将对其进行散列以获得整体散列)。

如果您的整体哈希与另一端匹配,则无需执行任何操作。如果没有,那么您开始发送您的中间 7 个哈希值以计算出哪些文件已更改。

关于c# - 合并多个文件的 MD5 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13677304/

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