xhat
V2EX  ›  问与答

linux 与 php 中 md5 的不同

  •  
  •   xhat · May 13, 2014 · 3756 views
    This topic created in 4567 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
    Lucups
    May 13, 2014
    1
    echo 00:16:3E:00:26:03 | md5sum

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

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