我有两个字节数组,可以说是A和B.我分别为它们计算了MD5哈希AH和BH。 现在,如果我将这些数组A和B组合到AB,并将MD5哈希值计算为ABH,那么将AH和BH组合成ABH的方法是什么?
答案 0 :(得分:1)
根据您的评论,您不需要加密哈希,只是某种“指纹”给出一定程度的哈希=数据保证,那么这里有一种可能性:
最简单的哈希就是对数据进行XOR(异或)。因此,对于8字节的散列,您只需将每8个字节的数据和XOR一起遍历,从而产生8字节的散列。这提供了非常高的确定性,除非“坏人”知道你如何进行散列,否则很容易伪造。
如果连接两个数据数组A和B,那么只要A是8的倍数,或者如果在A和B之间放置零填充是可以接受的,那么A +填充是8的倍数,那么组合散列将是(A的散列)XOR(B的散列)。 (至少,这是我50年前所学到的,如果我没记错的话。)
编辑:
答案 1 :(得分:0)
加密专家可能有能力使用某个值的部分MD5哈希来获取有关完整值的MD5哈希的一些信息,但出于实际目的,获取值的MD5哈希的唯一方法是从该值计算MD5哈希值。