如何将字节数组的md5哈希值组合到,以获得组合数组的相等md5哈希

本文关键字:md5 组合 数组 哈希 哈希值 字节 字节数 | 更新日期: 2023-09-27 18:21:45

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

如何将字节数组的md5哈希值组合到,以获得组合数组的相等md5哈希

根据您的评论,您不需要加密哈希,只需要某种"指纹"来提供一定程度的哈希=数据保证,那么有一种可能性:

最简单的散列就是对数据本身进行异或运算。因此,对于一个8字节的散列,您只需遍历数据,并将每8个字节异或一次,就可以生成一个8个字节的散列。这提供了非常高的确定性,除非"坏人"知道你是如何进行哈希的,否则很容易伪造。

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

编辑:

刚刚发现:为什么XOR是组合哈希的默认方式?

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