xhat
V2EX  ›  问与答

linux 与 php 中 md5 的不同

  •  
  •   xhat · May 13, 2014 · 3447 views
    This topic created in 4426 days ago, the information mentioned may be changed or developed.
    要计算linux网卡mac地址的md5值:
    #ifconfig
    eth0 Link encap:Ethernet HWaddr 00:16:3E:00:26:03

    采用以下命令获取linux下mac地址的md5:
    macmd5=`ifconfig eth0 | sed -n '/HWaddr/ s/^.*HWaddr *//pg' |md5sum| cut -d ' ' -f1`
    echo $macmd5
    值为:ca95e8e1242af950e42c27ea07d245d9

    php下计算mac的md5:
    echo md5("00:16:3E:00:26:03")
    值为:3fa425802eec449ad345bbe54998c61b

    查资料显示应该是linux的md5计算有误,似乎与换行符有关,但试过加上\n计算仍然不同,本例如何修正,请懂的同学赐教
    13 replies    2020-01-02 17:35:33 +08:00
    Lucups
        1
    Lucups  
       May 13, 2014
    echo 00:16:3E:00:26:03 | md5sum

    --------------------------------------------
    C:\Users\Tony>echo 00:16:3E:00:26:03 | md5sum
    5a2d8a05ff16a61a0cf6016a3ecfeb24 *-
    Lucups
        2
    Lucups  
       May 13, 2014
    刚忘了去换行
    C:\Users\Tony>echo -n 00:16:3E:00:26:03 | md5sum
    f1a7ccb1786c32014764bdaea52a3db2 *-
    vibbow
        3
    vibbow  
       May 13, 2014
    感觉PHP应该不会在这种小问题上出错
    那就检查你的linux命令吧,比如说有没有把空格,换行符,制表符,控制字符等等的过滤掉。
    jkeylu
        4
    jkeylu  
       May 13, 2014
    cygwin
    ➜ ~ echo 00:16:3E:00:26:03 | md5sum
    1fd7443862fd8bf1767ac36e6fa1e254 *-
    ➜ ~ echo -n 00:16:3E:00:26:03 | md5sum
    3fa425802eec449ad345bbe54998c61b *-
    sarices
        5
    sarices  
       May 13, 2014
    [root@ppp133 public]# echo -n 00:16:3E:00:26:03 | md5sum
    3fa425802eec449ad345bbe54998c61b -
    xhat
        6
    xhat  
    OP
       May 13, 2014
    @lucups @jkeylu @sarices
    sorry,没说清楚。我明白echo -n可以直接在shell里面显示正确的结果。这里应该不是echo的问题,应该是sed的多余符号我没搞清楚。
    问题是,通过本例中这些管道命令后,如何才能显示正确的结果?
    yangg
        7
    yangg  
       May 13, 2014   ❤️ 1
    ifconfig eth0 | sed -n '/HWaddr/ s/^.*HWaddr *//pg' | cat -A
    sarices
        8
    sarices  
       May 13, 2014   ❤️ 1
    @xhat
    其实没那么复杂,一条命令就可以
    cat /sys/class/net/eth0/address|md5sum
    walleL
        9
    walleL  
       May 13, 2014   ❤️ 1
    `ifconfig eth0 | sed -n '/HWaddr/ s/^.*HWaddr *//pg' | tr -d ' \n' | md5sum`
    去掉空格跟换行
    xhat
        10
    xhat  
    OP
       May 13, 2014
    thx @walleL
    终于等到正解。

    btw,能解释下,`ifconfig eth0 | sed -n '/HWaddr/ s/^.*HWaddr *//pg'`结果中的空格和换行符的位置么
    walleL
        11
    walleL  
       May 13, 2014   ❤️ 1
    @xhat
    像 @yangg 的命令里,用 cat -A 就可以看到了
    walleL
        12
    walleL  
       May 13, 2014
    借楼测试一下通知 XD @walleL
    37661713
        13
    37661713  
       Jan 2, 2020
    echo -n 和 php 中的 md5 一样 亲测
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 14:41 · PVG 22:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.