[转载] 有趣的 MD5 碰撞:仅包含字母数字、只有一个字节不同、原像相当短

来自 Marc Stevens 的 Twitter,下面两行文字(不包括 \n)仅包含 ASCII 的拉丁字母和数字,它们的 UTF-8 的 MD5 相等:

TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak
                     !
TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak

且只有 hAcK 变成了 hEcK,它们的 MD5 的十六进制表示是 faad49866e9498fc1719f5289e7a0269

Marc Stevens 是分析实用散列函数的专家。