我想知道,因为理论上有可能有重复的 MD5 哈希值,有没有已知的例子,或者这一切只是理论上的?
答案1
我知道的最短的如下。冲突确实会发生,这是使用哈希时需要考虑的问题。每个哈希函数都有保质期,MD5 即将寿终正寝,我个人只用它来验证文件完整性,它不再是一种安全的存储信息的方法,只是验证它而已。
输入向量 1:1
0000000 d1 31 dd 02 c5 e6 ee c4 69 3d 9a 06 98 af f9 5c
0000020 2f ca b5 87 12 46 7e ab 40 04 58 3e b8 fb 7f 89
0000040 55 ad 34 06 09 f4 b3 02 83 e4 88 83 25 71 41 5a
0000060 08 51 25 e8 f7 cd c9 9f d9 1d bd f2 80 37 3c 5b
0000100 d8 82 3e 31 56 34 8f 5b ae 6d ac d4 36 c9 19 c6
0000120 dd 53 e2 b4 87 da 03 fd 02 39 63 06 d2 48 cd a0
0000140 e9 9f 33 42 0f 57 7e e8 ce 54 b6 70 80 a8 0d 1e
0000160 c6 98 21 bc b6 a8 83 93 96 f9 65 2b 6f f7 2a 70
输入向量2:
0000000 d1 31 dd 02 c5 e6 ee c4 69 3d 9a 06 98 af f9 5c
0000020 2f ca b5 07 12 46 7e ab 40 04 58 3e b8 fb 7f 89
0000040 55 ad 34 06 09 f4 b3 02 83 e4 88 83 25 f1 41 5a
0000060 08 51 25 e8 f7 cd c9 9f d9 1d bd 72 80 37 3c 5b
0000100 d8 82 3e 31 56 34 8f 5b ae 6d ac d4 36 c9 19 c6
0000120 dd 53 e2 34 87 da 03 fd 02 39 63 06 d2 48 cd a0
0000140 e9 9f 33 42 0f 57 7e e8 ce 54 b6 70 80 28 0d 1e
0000160 c6 98 21 bc b6 a8 83 93 96 f9 65 ab 6f f7 2a 70
消化:
79054025255fb1a26e4bc422aef54eb4
答案2
基于 @50-3 的已接受答案。相同事物的 base64 表示。我在 Macbook 上运行它,因此 base64 调用中使用 -D。要在 Linux 中使用,请将 -D 替换为 -d。
矢量1.)
echo "0THdAsXm7sRpPZoGmK/5XC/KtYcSRn6rQARYPrj7f4lVrTQGCfSzAoPkiIMlcUFaCFEl6PfNyZ/ZHb3ygDc8W9iCPjFWNI9brm2s1DbJGcbdU+K0h9oD/QI5YwbSSM2g6Z8zQg9XfujOVLZwgKgNHsaYIby2qIOTlvllK2/3KnA=" | base64 -D | md5
矢量2.)
echo "0THdAsXm7sRpPZoGmK/5XC/KtQcSRn6rQARYPrj7f4lVrTQGCfSzAoPkiIMl8UFaCFEl6PfNyZ/ZHb1ygDc8W9iCPjFWNI9brm2s1DbJGcbdU+I0h9oD/QI5YwbSSM2g6Z8zQg9XfujOVLZwgCgNHsaYIby2qIOTlvllq2/3KnA=" | base64 -D | md5
请注意,base64 字符串略有不同......