GNU/Linux >> Tutoriels Linux >  >> Linux

La valeur de hachage MD5 est différente de Bash et PHP

La réponse de @Cyrus est exactement sur le point de savoir comment résoudre ce problème - pour expliquer, lors de l'utilisation de echo il affichera une nouvelle ligne à la fin de la chaîne. Comme vous pouvez le voir sur cette sortie en ligne, hello avec une nouvelle ligne produit exactement le MD5 que vous obteniez précédemment. Utilisation de -n supprime la nouvelle ligne, et vous donnera alors le résultat que vous attendiez.

Modifier :

Vous pouvez le voir clairement si vous le sortez en hexdump , qui affiche l'hexadécimal des octets ici.

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

Voir le 0a (\n ) à la fin de la chaîne

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

Avec -n echo ne met pas de nouvelle ligne (\n ) à la fin

Maintenant avec une chaîne vide

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

Juste le caractère de nouvelle ligne

$ echo -n  "" | hd

Chaîne vide, donc hexdump n'affiche aucune sortie


Par défaut, echo inclut un caractère de saut de ligne à la fin de la sortie. Cependant, PHP et les sites en ligne que vous avez utilisés n'incluent pas la nouvelle ligne. Pour supprimer le caractère de nouvelle ligne, utilisez le -n drapeau :

echo -n "hello" | md5sum

Sortie :

5d41402abc4b2a76b9719d911017c592  -

Voir :help echo

ou avec printf :

printf "%s" "hello" | md5sum

Linux
  1. Pipe vers/depuis le presse-papiers dans le script Bash

  2. Génération d'un hachage SHA-256 à partir de la ligne de commande Linux

  3. Restauration de stdout et stderr à la valeur par défaut

  4. Portée variable pour les scripts shell bash et les fonctions dans le script

  5. Comment puis-je obtenir le dernier numéro de la chaîne dans bash?

LA FAÇON FACILE comment SSH dans Bash et WSL2 sur Windows 10 à partir d'une machine externe

Les 30 meilleurs émulateurs de terminaux Linux et éditeurs Bash

Variable dans Bash Script qui conserve sa valeur depuis la dernière exécution

créer un répertoire à partir du nom de fichier et déplacer bash

Bash Shell Script - Recherchez un indicateur et saisissez sa valeur

À quoi sert $# dans Bash