Почему `md5sum` не дает тот же хеш, что и Интернет?


8

Я хочу найти md5-хэш строки «a», но запуск echo "a" | md5sumдает мне другой хэш, чем тот, который я получаю, если я ищу в Интернете (например, с помощью DuckDuckGo или первого найденного результата поиска ).

Запуск echo "a" | md5sumдает мне "60b725f10c9c85c70d97880dfe8191b3", но это должно быть "0cc175b9c0f1b6a831c399e269772661".

Если я сделаю обратный поиск хеша для «60b725f10c9c85c70d97880dfe8191b3», я получу «a».

Ответы:


15

Причина, по которой хэши отличаются, заключается в том, что echoв конце выходной строки добавлена ​​новая строка, чтобы сделать ее красивой. Это может быть запрещено -nфлагом (если ваша реализация echoподдерживает это) или с помощью другой программы (например printf):

> echo "a" | md5sum   
60b725f10c9c85c70d97880dfe8191b3  -

> echo -n "a" | md5sum
0cc175b9c0f1b6a831c399e269772661  -

> printf "a" | md5sum 
0cc175b9c0f1b6a831c399e269772661  -

2
echoдобавляет новую строку в вывод, чтобы сделать ее полной, а не красивой.
Кусалананда

@Kusalananda При вводе printf textтекста текст появляется перед следующей строкой подсказки.
neverMind9
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.