GNU/Linux >> Linux Esercitazione >  >> Linux

Il valore hash MD5 è diverso da Bash e PHP

La risposta di @Cyrus è esattamente in linea con come risolvere questo problema - per spiegare, quando si utilizza echo produrrà una nuova riga alla fine della stringa. Come puoi vedere in questo output online, hello con una nuova riga emette esattamente l'MD5 che stavi ottenendo in precedenza. Usando -n sopprime la nuova riga e ti darà il risultato che ti aspettavi.

Modifica :

Puoi vederlo chiaramente se lo emetti in hexdump , che mostra l'esadecimale dei byte presenti.

$ echo "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65 0a              |str_example.|

Vedi il 0a (\n ) alla fine della stringa

$ echo -n "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65                 |str_example|

Con -n echo non inserisce una nuova riga (\n ) alla fine

Ora con una stringa vuota

$ echo  "" | hd
00000000  0a                                                |.|

Solo il carattere Nuova riga

$ echo -n  "" | hd

Stringa vuota, quindi hexdump non mostra alcun output


Per impostazione predefinita, echo include un carattere di nuova riga alla fine dell'output. Tuttavia, PHP e i siti online che hai utilizzato non includono la nuova riga. Per sopprimere il carattere di nuova riga, usa il -n bandiera:

echo -n "hello" | md5sum

Uscita:

5d41402abc4b2a76b9719d911017c592  -

Vedi:help echo

o con printf:

printf "%s" "hello" | md5sum

Linux
  1. Stampa la riga di corrispondenza e l'ennesima riga dalla riga di corrispondenza?

  2. Generazione di un hash SHA-256 dalla riga di comando di Linux

  3. Variabile in Bash Script che mantiene il valore dall'ultima esecuzione

  4. creazione della directory dal nome file e spostamento bash

  5. Bash Shell Script:verifica la presenza di un flag e acquisisci il suo valore

Esegui script Perl/PHP dalla riga di comando

IL MODO FACILE come eseguire SSH in Bash e WSL2 su Windows 10 da un computer esterno

I 30 migliori emulatori di terminale Linux e editor Bash

Pipe da/verso gli appunti nello script Bash

Ripristino di stdout e stderr al valore predefinito

Come posso ottenere l'ultimo numero dalla stringa in bash?