SHA256 生成的口令被系统认为『太简单了』 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
MFWT
V2EX    程序员

SHA256 生成的口令被系统认为『太简单了』

  • &bsp;
  •   MFWT 2023-09-11 21:49:27 +08:00 3803 次点击
    这是一个创建于 763 天前的主题,其中的信息可能已经有所发展或是发生改变。

    MJJ 日常,买了台新加坡 VPS ,到手第一件事上公钥登录和改密码

    公钥登录没毛病,ed25519 就好了,但是口令登录出了问题。我用的紧急口令登录算法是 sha256(主口令和机器 IP),然后算出来这么一串东西:

    b2622877f3047940bcfcb123c84e2e30ba9276b326982a6575e52032ecc56ce3 

    输入到 passwd 中,系统提示太简单了无法使用

    $ cracklib-check <<< b2622877f3047940bcfcb123c84e2e30ba9276b326982a6575e52032ecc56ce3 b2622877f3047940bcfcb123c84e2e30ba9276b326982a6575e52032ecc56ce3: it is too simplistic/systematic 

    咕噜咕噜查了一下发现,可能是这里出了问题:

    b2622877f3047940bcf cb 123 c84e2e30 ba 9276b326982a6575e520 32 ecc 56 ce3 

    按照说法是五六处『连续排列』的字母数字大大超出了限制,因此被认定为『太简单』

    不过,这个口令真的能被认为是『太简单了』吗?

    不知道各位 V 友有无什么好看法

    19 条回复    2023-09-12 16:06:06 +08:00
    raysonx
        1
    raysonx  
       2023-09-11 21:52:59 +08:00
    我把你的密码放到 bitwarden 提供的密码强度测试工具检测了一下,给出的结果是要几百年才能破解: https://bitwarden.com/password-strength/
    benjix
        2
    benjix  
       2023-09-11 21:56:07 +08:00 via iPhone
    因为你的密码只包含小写字母和数字,跟内容无关。
    leonshaw
        3
    leonshaw  
       2023-09-11 22:55:25 +08:00 via Android   1
    系统有它的规则,没必要纠结这个。要说强度,只要够长,用 0 1 两个字符就够了。
    LDa
        4
    LDa  
       2023-09-11 23:22:05 +08:00
    现在的密码强度有连续数字和滚键盘校验
    yigecaiji
        5
    yigecaiji  
       2023-09-11 23:30:11 +08:00 via Android
    只有小写和数字是这样的,可能要包含大写字母和特殊符号
    f14g
        6
    f14g  
       2023-09-11 23:39:58 +08:00 via Android
    base64编码处理一下
    cosette
        7
    cosette  
       2023-09-11 23:46:17 +08:00
    长度足够,排除掉某些特殊排列的组合,在有重试限制的情况下依然是相当安全的。

    在长度受限的情况下,加入特殊符号可以一定程度上增加强度。总的来说,避开常见密码,不要太短两条原则就够了。
    slowman
        9
    slowman  
       2023-09-12 00:32:34 +08:00
    经典回顾
    CodeCodeStudy
        10
    CodeCodeStudy  
       2023-09-12 09:15:30 +08:00
    根据 8 楼给出的代码,b2622877f3047940bcfcb123c84e2e30ba9276b326982a6575e52032ecc56ce3
    出现了 87 bc cb 12 23 ba 76 32 98 65 32 56 ,总共 12 个地方是相邻的值,也就是代码里的变量 i
    maxrepeat = 3+(0.09*strlen(password));
    maxrepeat 是 8
    i 大于 maxrepeat ,所以提示 it is too simplistic/systematic
    jifengg
        11
    jifengg  
       2023-09-12 09:56:03 +08:00
    我倾向于是因为只有小写和数字导致的。
    aloxaf
        12
    aloxaf  
       2023-09-12 10:39:31 +08:00
    是这样的,不少密码强度检测工具都完全不考虑长度……
    leaflxh
        13
    leaflxh  
       2023-09-12 11:55:54 +08:00
    明文后面加上 fuckshit 再 sha256sum 一下(
    Admstor
        14
    Admstor  
       2023-09-12 12:22:16 +08:00
    @aloxaf 可能就是考虑到即便长但是简单也依然是弱口令

    说起来我并不建议用任何 hash 算法作为密码生成
    这并不算随机密码,某些时候与 123password 没区别
    zsh2517
        15
    zsh2517  
       2023-09-12 13:22:30 +08:00
    我没用过 cracklib-check 。不过单纯从密码系统的设计上来说,有可能是没有通过一些硬性条件的校验,比如说,大小写数字特殊符号等至少包含 X 种。如果这个硬性条件没满足那么无法通过。另外可能就是撞上了一些固定的校验规则而被一票否决(比如 idu2gi23g89y2398yh9123456ixohs0f ,因为包含 123456 可能会被否认安全性)

    大部分时候长度是能解决安全性问题的( md5(123456) 这种态简单的不算)。就像 3 楼说的,只要够长,0 和 1 两个字符都行(可以这么想,假设我有一个足够安全的密码,那么按位转二进制,安全性不会比原来的差)。

    但是一般设计上,期望用户输入的密码,大部分时候不是无限长度的,而是在一个有限长度内达到特定的安全性。

    我自己用 1password ,里面就有一类“易记密码”,比如“nightcap-boatyard-helix-goodly”,安全性评价大概与 10~11 位字母+数字相同。日用感觉是足够的,而且在不知道规则的情况下反而不容易被密码表撞上
    MFWT
        16
    MFWT  
    OP
       2023-09-12 13:37:09 +08:00
    @Admstor 那有什么好建议吗,难道真的只能随身带私钥?
    julyclyde
        17
    julyclyde  
       2023-09-12 15:08:20 +08:00
    假设被外人偷偷知道了你的密码是一个 sha256
    那么这里面“能出现哪些字符”范围就缩小很多了
    虽然不知道具体是几,但是可以穷举,而且代价比 什么都不知道 要小很多
    MFWT
        18
    MFWT  
    OP
       2023-09-12 15:47:35 +08:00
    @julyclyde

    emmm ,有什么好的建议嘛,比如用专用的密钥导出函数?
    rocksolid
        19
    rocksolid  
       2023-09-12 16:06:06 +08:00
    实际问题就是你没大写和特殊字符
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     916 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:59 PVG 04:59 LAX 13:59 JFK 16:59
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86