我有 7 个要为其生成 MD5 哈希的文件。哈希用于确保数据存储的远程副本与本地副本相同。不幸的是,这两个数据副本之间的链接速度慢得令人麻木。对数据的更改非常少见,但我要求始终(或尽快)同步数据。我不想在我的(非常慢的)通信链路上传递 7 个不同的 MD5 散列,而是为每个文件生成散列,然后将这些散列组合成一个散列,然后我可以传输该散列,然后重新计算/用于比较在远端。如果“组合哈希”不同,那么我将开始发送 7 个单独的哈希以确定哪些文件已被更改。例如,
0709d609d69385255c496436eb50402c
709465a74411bd596595c7b9b158ae6a
4ab657320ef33e3d5eb498e4c13d41b7
3b49c6ab199994fd776bb63761414e72
0fc28c5a010fc3c06c0c930c88e31a15
c4ecd214662cac5aae0e53f6f252bf0e
8b086431e43148a2c2d943ba30d31cc6
我想将这些散列组合在一起,以便获得一个唯一值(可能是另一个 MD5 散列?),然后我可以将其发送到远程系统。然后,在远程系统上,我将执行相同的计算以确定整个数据是否已更改。如果有,那么我将开始发送单个哈希等。最重要的因素是我的“组合哈希”足够短,因此它使用的带宽比首先发送所有 7 个哈希要少。我想将 7 个 MD5 哈希值写入文件,然后对该文件进行哈希处理,但有更好的方法吗?