Algorithm 设计散列函数以从不同密码生成相同的散列

Algorithm 设计散列函数以从不同密码生成相同的散列,algorithm,hash,Algorithm,Hash,问题是这样的: 假设您的算法将给定字符串分成三个字符块,并对它们进行异或运算。然后将结果传递给现有的MD5哈希算法。例如,该算法将为“FOO”和“FOO”提供相同的哈希值 在他的例子中,我很难理解XORing块如何创建相同的散列值。有人能解释一下这是怎么回事吗 当你对一个值进行异或运算时,你得到0,如果你对某个值进行异或运算,你会得到同样的结果。我们得到“FOO”XOR“FOO”=“\0\0\0”和“\0\0\0”XOR“FOO”=“FOO”。剩下的就交给你了。:-) 为什么你不能忽略前缀魔法字

问题是这样的: 假设您的算法将给定字符串分成三个字符块,并对它们进行异或运算。然后将结果传递给现有的MD5哈希算法。例如,该算法将为“FOO”和“FOO”提供相同的哈希值


在他的例子中,我很难理解XORing块如何创建相同的散列值。有人能解释一下这是怎么回事吗

当你对一个值进行异或运算时,你得到0,如果你对某个值进行异或运算,你会得到同样的结果。我们得到
“FOO”XOR“FOO”=“\0\0\0”
“\0\0\0”XOR“FOO”=“FOO”
。剩下的就交给你了。:-)

为什么你不能忽略前缀魔法字符序列并对剩余的字符进行哈希处理?他希望通过简单的按位操作来完成。顺便说一句:你应该删除加密标记并添加一个家庭作业标记。@krynr:家庭作业标记已被删除。@DMS:谢谢你指出。我仍然认为密码标签是错误的,我想你可以得到它[x1-xor-x2-xor-x3],假设魔法序列可以分为两部分,x1和x2,这个等于0的xor将使它工作。但这意味着序列必须重复自身,例如abcabc。我试着去想一个魔术序列不重复但很难做到的事情。把序列分成和魔术字符串长度相同的块。用魔法序列对每个块进行异或运算。XOR将所有块一块一块地放在一起。