首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哈希冲突示例(可打印字符串)

哈希冲突示例(可打印字符串)
EN

Stack Overflow用户
提问于 2014-10-06 13:17:28
回答 3查看 9.7K关注 0票数 6

我已经搜索了很多MD5哈希冲突,但我只找到了二进制示例。我想找到两个UTF-8字符串,它们具有相同的MD5哈希。是否存在冲突,或者冲突只对二进制数据起作用?

EN

回答 3

Stack Overflow用户

发布于 2014-10-20 11:32:09

这绝对有可能:

  • 我们一致认为,由于MD5的存在,生日悖论会发生碰撞--我们将无限多个可能的输入映射到属于有限序列的元素。
  • 存在无限多次碰撞的可能性很大:我们能够产生无限对输入,而MD5试图统一地映射它们。

仅凭这一点,这些冲突中的一些必然是有效的UTF-8字符串,但它们非常罕见,因为其中大多数都是随机二进制垃圾。

如果您绝对需要来查找这样的消息,我建议使用冲突查找器由Patrick Stach编写,它应该在几个小时内返回一对任意消息,或者我试图改进它。后者使用了王(第一个演示MD5碰撞例子的人)、Lian、Sasaki、Yajima和Klima在后来的论文中提出的技巧。

我认为您也可以在某种程度上使用长度扩展攻击,但它需要对MD5内部发生的事情有更深入的了解。

票数 15
EN

Stack Overflow用户

发布于 2014-10-06 19:12:22

UTF-8碰撞.从密码散列的本质来看,找到它们是有意的困难,即使是像MD5这样被破坏的散列。

您可以搜索MD5彩虹表,它可以用于密码破解,因此也可以用于UTF-8字符串。正如@alk所指出的,野蛮的搜索需要很长的时间。

票数 9
EN

Stack Overflow用户

发布于 2014-10-14 06:35:15

MD5哈希冲突(六角-从这里来)的典型示例:

电文1:

代码语言:javascript
复制
d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89
55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70

电文2

代码语言:javascript
复制
d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89
55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70

实际上,是有效的UTF-8字符串。它们不包含任何NULL字节,因此是UTF-8字符串。现在,它们毫无意义,解码后看起来就像垃圾:

电文1:

代码语言:javascript
复制
1i=\/ʵF~@X>U4 䈃%qAZQ%ɟ7<[؂>1V4[m6Sⴇ9cH͠3BW~Tp
Ƙ!e+o*p

(有些字符是对照字符)

电文2:

代码语言:javascript
复制
1i=\/ʵF~@X>U4    䈃%AZQ%ɟr7<[؂>1V4[m6S49cH͠3BW~Tp(
Ƙ!eo*p

(情况相同)

哦,在我忘记之前,下面是MD5哈希:

代码语言:javascript
复制
79054025255fb1a26e4bc422aef54eb4
票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26217076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档