linux 与 php 中 md5 的不同

2014-05-13 01:49:14 +08:00
 xhat
要计算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计算仍然不同,本例如何修正,请懂的同学赐教
2957 次点击
所在节点    问与答
13 条回复
Lucups
2014-05-13 02:24:43 +08:00
echo 00:16:3E:00:26:03 | md5sum

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

btw,能解释下,`ifconfig eth0 | sed -n '/HWaddr/ s/^.*HWaddr *//pg'`结果中的空格和换行符的位置么
walleL
2014-05-13 12:47:02 +08:00
@xhat
像 @yangg 的命令里,用 cat -A 就可以看到了
walleL
2014-05-13 13:17:01 +08:00
借楼测试一下通知 XD @walleL
37661713
2020-01-02 17:35:33 +08:00
echo -n 和 php 中的 md5 一样 亲测

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/112262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX