Чому мій хеш командного рядка відрізняється від онлайн-хеш-файлів MD5?


21

На Mac OS X v10.5 (Leopard) PowerPC, якщо я:

відлуння "привіт" | md5
у командному рядку результат:

b1946ac92492d2347c6235b4d2611184

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

5d41402abc4b2a76b9719d911017c592

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


Для мене працює в Windows із Total Commander, створюючи контрольну суму MD5. Те саме, що і онлайн-версія.
Снарк

Спасибі, Снарк. Rudedog вирішив проблему при використанні md5 в командному рядку, принаймні для систем POSIX. Дайте йому +1, якщо можете. Я занадто нова.
pellea72

Відповіді:


40

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

Спробуйте зробити

echo -n hello | md5

і це дасть вам те, що ви очікуєте. -N вказує ехо не виводити новий рядок.


На жаль Я не помітив тег "-n". Ти правий Рудодог. Це спрацювало. Спасибі.
pellea72

3

Ви також можете використовувати printf замість відлуння, що автоматично пригнічує символ нового рядка:

printf hello | md5

Або навіть:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 ist md5 лише рядка

hello

5d41402abc4b2a76b9719d911017c592 ist the md5 of

hello

CR + LF

CR + LF - це новий рядок для Windows.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.