18

На Mac OS X v10.5 (Leopard) PowerPC, если я это сделаю:

echo "hello" | md5 
в командной строке результат:
b1946ac92492d2347c6235b4d2611184

Но если я вхожу в привет на одном из хеш-сайтов MD5, таких как http://md5online.net/, я получаю:

5d41402abc4b2a76b9719d911017c592

Я делаю что-то неправильно? Если я хочу использовать MD5 на ходу, как я могу убедиться, что то, что я получаю в командной строке, будет соответствовать онлайн-инструментам md5?

3 ответа3

36

Когда вы выводите эхо из командной строки, md5 вычисляет сумму из 6 символов - h, e, l, l, o плюс символ новой строки. Текст, который вы вводите на веб-сайте, не имеет новой строки.

Попробуй сделать

echo -n hello | md5

и это даст вам то, что вы ожидаете. -N говорит эхо не выводить символ новой строки.

3

Вы также можете использовать printf вместо echo, что автоматически подавляет символ новой строки:

printf hello | md5

Или даже:

printf "hello" | md5
2

b1946ac92492d2347c6235b4d2611184 это md5 только строки

hello

5d41402abc4b2a76b9719d911017c592 является md5 из

hello

CR+LF

CR+LF - это новая строка Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .