好像在发帖中留`md5(手机号)`作为自己的联系方式也不是不行嘛😁

305 天前
 f14g

挖坟鞭尸警告!(无意冒犯)

/t/937283有感, 帖中 OP 留了个md5(微信 ID)作为联系方式, 遭到了大家的嘲讽.

本来我也只是当乐子看的嘛, 但是当我看到这么一篇更陈年的老帖的时候, 忽然意识到这个事情并不是那么的可笑.

如果我们限定md5sum是特定格式的数据产生, 以现代计算机的运算能力, 是可以控制在一个很短的时间内碰撞出原始数据的. 包括但不限于 QQ/手机号/短且简单的微信 ID, 以及前述数据拼接出来的邮箱地址, 等等.

比如, 我们限定一种最简单的联系方式: 手机号

我测试了两个 sample:

  1. 手机号 19216832109
  2. /t/937283中 OP 所留的 md5sum

使用hashcat进行掩码爆破: hashcat -m 0 -a 3 $hash 1?d?d?d?d?d?d?d?d?d?d

测试机 A 是我的上古游戏本, Intel 7920HQ + GTX 1070(CUDA 加速)

测试机 B 是前年买的小新笔记本, AMD 5800H (核心显卡)

测试机 A 可以在 2 秒内跑完所有的碰撞用例, 仅需 1 秒即可碰撞出手机号: 19216832109

测试机 B 可以在 6 秒内跑完所有的碰撞用例, 仅需 4 秒即可碰撞出手机号: 19216832109

从上述结果来看, 留一个md5sum作为自己的联系方式其实是有可取之处的嘛.🫢

4992 次点击
所在节点    程序员
27 条回复
d7101120120
305 天前
是的,已经有不少号称"解密"md5 的网站其实也都是用这种碰撞的方式,将大部分常见的字符串的 md5 值算出来,建立映射关系,之后再跟用户输入的 md5 字符串匹配的。

说起来想起一件趣事,就是电信的光猫曾经将超级用户的密码放在登录接口的返回里面,虽然只有 md5 的值,但是有规则可循,总是 telecomadmin+8 位数字。这个时候就可以写一个简单的脚本,穷举出这 8 位数字的结果,从而得到超级密码。
seakingii
305 天前
可以但没必要
Binwalker
305 天前
的确是这样,以前 CTF 比赛时有 MISC 题就是这种,给个 HASH ,flag 是手机号,然后地区和通信商通过其它条件找到以减少范围,python 写个遍历一秒就出来了
dem0ns
305 天前
如果我是 cmd5 的股东,我愿意留下 md5 的手机号
kkwa56188
305 天前
碰撞跟暴力解密码 一样, 只适合 位数短的, 有一定限制的(例如手机号), 甚至还能建常用字典
说不能解吧, 还是有能解的例子,
但通用性就 见仁见智了
leaflxh
305 天前
留 md5 这种纯属是想玩缘分
lhbc
305 天前
8bb258d4f970cc41c6d98ce3eceebc1d




echo "my phone number: +86-(138)-0013-8000, call me please." | md5sum
pengtdyd
305 天前
但是现在在新项目的开始的时候密码都不用 md5 了,sha512+盐+散列,这样就算你得到了也没啥用。
GeruzoniAnsasu
305 天前
如果你 10 年前用过 cmd5 ,那就应该知道它们早就把 11 位纯数字(手机号)撞完了:

https://www.cmd5.com/password.aspx

手机号撞出来确实不困难,但蠢不是因为无法还原,而是每一个留 md5 的人都没意识到 md5 是个 hash 算法意味着什么,这说明他的技术素养堪忧。

假如原 po 主本意就是双向筛选密码学和安全技术扎实的业内人士,那留一个 md5 让人撞当然无可厚非
f14g
305 天前
@pengtdyd `sha512+盐+散列`只会增加碰撞的难度而已. 如果本身密码强度足够低的话, 也是可以在可观的时间内解出的. 此时就要考验字典的能力了😂
f14g
305 天前
@GeruzoniAnsasu 确实. 我发这个帖的时候也是有类似的想法: 如果想在 v 站筛选安全圈的 V 友的话, 留联系方式的时候放一个 md5sum 好像不失为一个好办法.
RoccoShi
305 天前
毕竟去掉前三位也就 1e7 的复杂度
abersheeran
305 天前
如果是招黑客我觉得倒也不是不可以。甚至可以不留联系方式,只写待遇,让有兴趣的人自己想办法拿到联系方式。😂
sNullp
305 天前
本站有 md5 ptsd ,这个不是技术问题…
dayeye2006199
305 天前
所以大家学习到了纯数字的密码有多弱智了把
lithiumii
305 天前
确实,甚至可以留 sha256 的手机号
mythabc
305 天前
相比于
192 手 1683 机 2109 浩
你这种 MD5 彩虹表的方式有什么特别的优势吗?甚至在被识别出来的情况下,可以直接写个脚本进行全站手机号还原。

而我,每一次使用都可以自由的变换加密方式

192 獣 1683 机 2109
192 邀 683 机 2109
192 手 1683 机 21 灵鹫
x86
304 天前
纯数字的 md5 何况是手机号,在 n 年前就能秒解了
Jirajine
304 天前
@f14g “安全圈”人士留个 md5 的手机号确实挺搞笑的,security by obscurity ?
除了装 b 没有任何安全性可言,真要安全的方式交换联系方式不如留 PGP 公钥。
imdong
304 天前
如果你们对号码编码是为了防止社工攻击,那么使用固定值也是一种特征,月底麻烦一点,要搜索 Q 帐号,base64 后的帐号,md5 后的帐号……所以我留下 base64 时,并不会只编码帐号信息,会在前面加上一些额外的文字,尽量每次都不一样。这样 base64 的特征会减少。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955180

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX