繁体   English   中英

MD5在PHP和ash / OSX之间提供了不同的结果

[英]MD5 gives different result between PHP and ash/OSX

我在Busybox上创建了一个哈希,与PHP脚本进行比较。

但是结果并不理想:

BusyBox v1.15.3 echo A|md5sum     bf072e9119077b4e76437a93986787ef  -
MacBook-Air:~ $ echo A|md5        bf072e9119077b4e76437a93986787ef
MacBook-Air:~ $ echo "A"|md5      bf072e9119077b4e76437a93986787ef
[root@centos67 ~] echo "A"|md5sum bf072e9119077b4e76437a93986787ef
.
PHP LAMP: echo md5("A");          7fc56270e7a70fa81a5935b72eacbe29
PHP MAMP: echo md5("A");          7fc56270e7a70fa81a5935b72eacbe29

此外,使用Google搜索的在线md5生成脚本总是返回与上述PHP相同的结果。

为什么会这样呢? md5和md5sum之间有什么区别(如果有),并且如果存在区别,为什么busybox和OSX之间的命名不一致?

如何获取PHP以生成与Busybox生成的哈希相同的哈希? 另一种方法(使Busybox使PHP md5老化)也可以,但是它必须与我的基本Busybox版本一起使用。

找出答案很简单。

GNU echo总是以换行符结尾

两种可能的修复:

BusyBox v1.15.3 echo -n A|md5sum     7fc56270e7a70fa81a5935b72eacbe29  -
MacBook-Air:~ $ echo -n A|md5        7fc56270e7a70fa81a5935b72eacbe29
MacBook-Air:~ $ echo -n "A"|md5      7fc56270e7a70fa81a5935b72eacbe29
[root@centos67 ~] echo -n "A"|md5sum 7fc56270e7a70fa81a5935b72eacbe29
.
PHP LAMP: echo md5("A");             7fc56270e7a70fa81a5935b72eacbe29
PHP MAMP: echo md5("A");             7fc56270e7a70fa81a5935b72eacbe29

要么

BusyBox v1.15.3 echo A|md5sum        bf072e9119077b4e76437a93986787ef  -
MacBook-Air:~ $ echo A|md5           bf072e9119077b4e76437a93986787ef
MacBook-Air:~ $ echo "A"|md5         bf072e9119077b4e76437a93986787ef
[root@centos67 ~] echo "A"|md5sum    bf072e9119077b4e76437a93986787ef
.
PHP LAMP: echo md5("A\n");           bf072e9119077b4e76437a93986787ef
PHP MAMP: echo md5("A\n");           bf072e9119077b4e76437a93986787ef

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM