如何将md5哈希值与字节数组合并得到组合数组的等价md5哈希值

时间:2014-09-14 12:15:53

标签: c# .net md5

我有两个字节数组,可以说是A和B.我分别为它们计算了MD5哈希AH和BH。 现在,如果我将这些数组A和B组合到AB,并将MD5哈希值计算为ABH,那么将AH和BH组合成ABH的方法是什么?

2 个答案:

答案 0 :(得分:1)

根据您的评论,您不需要加密哈希,只是某种“指纹”给出一定程度的哈希=数据保证,那么这里有一种可能性:

最简单的哈希就是对数据进行XOR(异或)。因此,对于8字节的散列,您只需将每8个字节的数据和XOR一起遍历,从而产生8字节的散列。这提供了非常高的确定性,除非“坏人”知道你如何进行散列,否则很容易伪造。

如果连接两个数据数组A和B,那么只要A是8的倍数,或者如果在A和B之间放置零填充是可以接受的,那么A +填充是8的倍数,那么组合散列将是(A的散列)XOR(B的散列)。 (至少,这是我50年前所学到的,如果我没记错的话。)

编辑:

刚刚发现:Why is XOR the default way to combine hashes?

答案 1 :(得分:0)

加密专家可能有能力使用某个值的部分MD5哈希来获取有关完整值的MD5哈希的一些信息,但出于实际目的,获取值的MD5哈希的唯一方法是从该值计算MD5哈希值。