cat /var/lib/radom_salt | md5sum 不生成随机字符 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
sbmzhcn
V2EX    Linux

cat /var/lib/radom_salt | md5sum 不生成随机字符

  •  
  •   sbmzhcn Nov 12, 2015 3002 views
    This topic created in 3819 days ago, the information mentioned may be changed or developed.

    网上有段代码生成密码的

    function get_password() {
    # Check whether our local salt is present.
    SALT=/var/lib/radom_salt
    if [ ! -f "$SALT" ]
    then
    head -c 512 /dev/urandom > "$SALT"
    chmod 400 "$SALT"
    fi
    password=`(cat "$SALT"; echo $1) | md5sum | base64`
    echo ${password:0:13}
    }

    cat /var/lib/radom_salt | md5sum 这段代码生成的每次结果都一样的,所以上面的代码,只要知道参数,密码都是唯一的,这是所有的 linux 都这样的,还是怎么回事。

    自己写的代码用到它了,结果出现严重问题,只要猜到用户名,我的密码就能算出来。

    13 replies    2015-11-21 10:04:27 +08:00
    typcn
        1
    typcn  
       Nov 12, 2015
    如果 /var/lib/radom_salt 是这个脚本, cat /var/lib/radom_salt 会返回你这个脚本的内容
    如果不是,会返回 "cat: /var/lib/radom_salt: No such file or directory" 的 MD5
    cloudzhou
        2
    cloudzhou  
       Nov 12, 2015
    cat /proc/sys/kernel/random/uuid | md5sum
    47jm9ozp
        3
    47jm9ozp  
       Nov 12, 2015
    脚本不是先
    head -c 512 /dev/urandom > /var/lib/radom_salt

    然后才
    cat /var/lib/radom_salt | md5sum

    要先更新这个文件然后再 md5sum 啊……你直接来后面这句干嘛
    mcfog
        4
    mcfog  
       Nov 12, 2015
    LZ 你去查下 /dev/urandom 是什么就知道为什么这样了
    stillness
        5
    stillness  
       Nov 12, 2015
    @mcfog /dev/urandom 还是能产生随机内容的,没那么不堪。

    这个问题难道不是因为只生成了一次 /var/lib/radom_salt 文件,因为那个 if 判断,文件存在就不在生成新的了。
    msg7086
        6
    msg7086  
       Nov 12, 2015
    猜到用户名就能算密码?咋算的?难不成你还把 salt 发给别人了?
    ryd994
        7
    ryd994  
       Nov 13, 2015 via Android
    1. 谁让你用 md5 来着
    2. 这就是个教科书级的错误实现,重用 salt
    mengzhuo
        8
    mengzhuo  
       Nov 13, 2015 via iPhone
    salt 也不能重用啊!
    像我司都是有特定算法把用户的 uuid 的一部分拿来做 salt 的
    jings
        9
    jings  
       Nov 13, 2015
    tr -dc "\041"-"\176" < /dev/urandom |head -c 60|md5sum
    jings
        10
    jings  
       Nov 13, 2015
    openssl rand -hex 10
    rootit
        11
    rootit  
       Nov 15, 2015
    完美生成随机:
    head -10 < /dev/urandom|tr -dc 'a-zA-Z0-9^&()!@.^%'|cut -c 1-15

    想生成多长就 cut 多长
    Arthur2e5
        12
    Arthur2e5  
       Nov 16, 2015
    @typcn 不会。 PIPE 的重定向对象是 stdout ,而 cat 报错在 stderr 。
    sbmzhcn
        13
    sbmzhcn  
    OP
       Nov 21, 2015
    我有个 VPS 上的 FTP 账号密码全部被黑客破解,我怀疑是这个脚本的问题。
    get_password username 如果 username 不变密码就不会变。

    现在比较明白了,每个 VPS 生成的 /var/lib/radom_salt 应该都不一样的,黑客应该不可能知道 /var/lib/radom_salt 的内容。 所以账号泄露应该还有其它原因。
    About     Help     Advertise     Blog     API     FAQ     Solana     3204 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 822ms UTC 13:55 PVG 21:55 LAX 06:55 JFK 09:55
    Do have faith in what you're doing.
    ubao msn 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