V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
f14g
V2EX  ›  程序员

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

  •  1
     
  •   f14g · 320 天前 · 5014 次点击
    这是一个创建于 320 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    /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 image.png

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

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

    27 条回复    2023-07-10 01:36:22 +08:00
    d7101120120
        1
    d7101120120  
       320 天前
    是的,已经有不少号称"解密"md5 的网站其实也都是用这种碰撞的方式,将大部分常见的字符串的 md5 值算出来,建立映射关系,之后再跟用户输入的 md5 字符串匹配的。

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




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

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

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

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

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

    192 獣 1683 机 2109
    192 邀 683 机 2109
    192 手 1683 机 21 灵鹫
    x86
        18
    x86  
       320 天前 via iPhone
    纯数字的 md5 何况是手机号,在 n 年前就能秒解了
    Jirajine
        19
    Jirajine  
       320 天前
    @f14g “安全圈”人士留个 md5 的手机号确实挺搞笑的,security by obscurity ?
    除了装 b 没有任何安全性可言,真要安全的方式交换联系方式不如留 PGP 公钥。
    imdong
        20
    imdong  
       320 天前 via iPhone   ❤️ 4
    如果你们对号码编码是为了防止社工攻击,那么使用固定值也是一种特征,月底麻烦一点,要搜索 Q 帐号,base64 后的帐号,md5 后的帐号……所以我留下 base64 时,并不会只编码帐号信息,会在前面加上一些额外的文字,尽量每次都不一样。这样 base64 的特征会减少。
    christin
        21
    christin  
       320 天前 via iPhone
    手机号是 11 位的纯数字,暴力破解也还行,但是微信号不一样啊,未知长度的数字字母和符号,我可不想浪费时间挨着试
    bjzhush
        22
    bjzhush  
       320 天前
    技术上可行并不等于合适
    为什么 V 站大家会留 base64 的联系方式?主要目的是防止 Google 等索引及后续可能的社工
    至于你说的爆破,理论上是可行的,但是是需要一段程序支持的,而 base64 的 encode/decode 是随便在网页等地方 1 秒解开的。
    可以对比一下,手机号 md5 几秒可解,安全性并不比 base64 高,但是反解起来更麻烦,所以有点脱裤子放屁的意思。
    至于微信的 MD5 和 base64 相比,MD5 无解,因为微信 ID 长度可以非常长,base64 秒解。

    综上,MD5 垃圾,base64 好用
    f14g
        23
    f14g  
    OP
       320 天前 via Android
    @imdong 有道理👍
    julyclyde
        24
    julyclyde  
       320 天前
    除了 hash“有可能碰撞”之外,其实没啥太大问题
    Lax
        25
    Lax  
       319 天前
    11 位数字的哈希值有没有算出来是相同的?如果没有碰撞的话,只是留一个手机号,那也算是一种可以考虑的方式。
    但是留的联系方式不一定只是手机号,还有各种邮箱、微信号、地址等等,不信在几秒之内就能碰撞出来
    w568w
        26
    w568w  
       319 天前   ❤️ 2
    如果只是想反爬……

    沵恏,莪哋掱僟呺湜:Ig2①陸仈彡贰—蕶勼
    gtgc2005
        27
    gtgc2005  
       319 天前
    @w568w 的确,但是如果想联系你的人都看不懂,那么也就失去了发出来的意义了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3523 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:21 · PVG 18:21 · LAX 03:21 · JFK 06:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.