2015-05-17 3 views
0

функция md5sum возвращает различные значения в одной и той же строки В этом случаеmd5sum возвращает различные значения с «одинаковыми» строками

>echo -n Bob | md5sum 
2fc1c0beb992cd7096975cfebf9d5c3b 

Но в этом другом случае.

>md5sum <<< Bob 
a2eae7400008e77790c3272f754a14db 

Что здесь произошло? Некоторые советы?

+0

На выходе же на самом деле. Что ты конкретно имеешь ввиду? Вы выполнили этот код? – Elyasin

+0

Я выполнил этот код, потому что мне нужно проверить результат функции md5, я протестировал mysql function md5(). У меня есть ошибка в моем письменном виде в первом коде результат является 2fc1c0beb992cd7096975cfebf9d5c3b в секунду a2eae7400008e77790c3272f754a14db – Bob

+0

ли мой ответ не поможет? – Elyasin

ответ

1

здесь-строка включает в себя неявный символ новой строки (0x0a в шестнадцатеричном формате). Сравнить

$ echo -n Bob | hexdump 
0000000 42 6f 62 
0000003 

с

$ hexdump <<< "Bob" 
0000000 42 6f 62 0a 
0000004 

Вы на самом деле вычисления контрольной суммы MD5 для двух разных строк, следовательно, разница в мощности. Если вы не подавлять символ новой строки с выходом echo, вы получите тот же результат, что и с здесь строками:

$ echo Bob | md5 
a2eae7400008e77790c3272f754a14db 
1

Результат на вашем примере аналогичен вашему примеру. Тем не менее, удалить опцию -n из первого примера:

echo Bob | md5sum 
Смежные вопросы