Perché il mio hash da riga di comando è diverso dai risultati hash MD5 online?


21

Su un PowerPC per Mac OS X v10.5 (Leopard), se lo faccio:

echo "ciao" | md5
sulla riga di comando, il risultato è:

b1946ac92492d2347c6235b4d2611184

Ma se entro in uno dei siti di hash MD5 online come http://md5online.net/ , ottengo:

5d41402abc4b2a76b9719d911017c592

Sto facendo qualcosa di sbagliato? Se voglio usare MD5 in viaggio, come posso assicurarmi che ciò che ottengo sulla riga di comando sia d'accordo con gli strumenti online md5?


Funziona per me su Windows con Total Commander creando il checksum MD5. Come la versione online.
Snark,

Grazie Snark. Rudedog ha risolto il problema quando si utilizza md5 sulla riga di comando, almeno per i sistemi POSIX. Dagli un +1 se puoi. Sono troppo nuovo
pellea72,

Risposte:


40

Quando si fa eco dalla riga di comando, md5 sta calcolando la somma di 6 caratteri: h, e, l, l, o plus newline. Il testo inserito in un sito Web non ha una nuova riga.

Prova a fare

echo -n hello | md5

e ti darà quello che ti aspetti. -N dice a echo di non generare una nuova riga.


Ops. Non ho notato il tag '-n'. Hai ragione Rudedog. Ha funzionato Grazie.
pellea72,

3

Puoi anche usare printf invece di echo, che sopprime automaticamente il carattere di nuova riga:

printf hello | md5

O anche:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 è il md5 della sola stringa

hello

5d41402abc4b2a76b9719d911017c592 è il md5 di

hello

CR + LF

CR + LF è la newline di Windows.


1

Per aggiungere i miei 5 centesimi ed estendere la risposta: in Linux non è md5, è md5sum, quindi dovresti fare:

echo -n hello | md5sum
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.