2016-02-04 2 views
0

Я создаю хэш на Busybox, который я сравниваю с php-скриптом.MD5 дает разные результаты между PHP и ash/OSX

Однако результаты ничего, но желательно:

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

Кроме того, гугле online md5 generating scripts всегда возвращают один и тот же результат, как и те, PHP выше.

Почему это происходит? Что (если есть) разница между md5 и md5sum, и если есть разница, почему несоответствие именования между busybox и OSX?

Как я могу заставить PHP генерировать тот же хеш, который генерирует мой Busybox? Другой способ (сделать Busybox gerenate PHP md5) тоже нормально, но он должен работать с моей базовой версией Busybox.

ответ

0

Обнаружен ответ был довольно прост.

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 
[[email protected] ~] 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 
[[email protected] ~] echo "A"|md5sum bf072e9119077b4e76437a93986787ef 
. 
PHP LAMP: echo md5("A\n");   bf072e9119077b4e76437a93986787ef 
PHP MAMP: echo md5("A\n");   bf072e9119077b4e76437a93986787ef 
Смежные вопросы