MD5 дает разные результаты между PHP и 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

Кроме того, гуглил онлайн md5 генерирующие скрипты всегда возвращайте тот же результат, что и в 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
[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
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]