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

2023-07-08 23:00:17 +08:00
 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作为自己的联系方式其实是有可取之处的嘛.🫢

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

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




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

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

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

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

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

192 獣 1683 机 2109
192 邀 683 机 2109
192 手 1683 机 21 灵鹫
x86
2023-07-09 08:29:10 +08:00
纯数字的 md5 何况是手机号,在 n 年前就能秒解了
Jirajine
2023-07-09 08:32:50 +08:00
@f14g “安全圈”人士留个 md5 的手机号确实挺搞笑的,security by obscurity ?
除了装 b 没有任何安全性可言,真要安全的方式交换联系方式不如留 PGP 公钥。
imdong
2023-07-09 08:44:46 +08:00
如果你们对号码编码是为了防止社工攻击,那么使用固定值也是一种特征,月底麻烦一点,要搜索 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