Comment créer un hachage md5 pour une chaîne sur un mac en utilisant bash
? md5sum
n'existe pas dans mon environnement. J'ai fait un man
pour md5 mais je ne sais pas ce que cela fait vraiment.
md5 "string"
ne renvoie pas de hachage.
Comment créer un hachage md5 pour une chaîne sur un mac en utilisant bash
? md5sum
n'existe pas dans mon environnement. J'ai fait un man
pour md5 mais je ne sais pas ce que cela fait vraiment.
md5 "string"
ne renvoie pas de hachage.
Cela devrait fonctionner -
[jaypal:~/Temp] echo "this will be encrypted" | md5
72caf9daf910b5ef86796f74c20b7e0b
ou si vous préférez here string
alors -
[jaypal:~/Temp] md5 <<< 'this will be encrypted'
72caf9daf910b5ef86796f74c20b7e0b
Par le man
vous pouvez jouer avec l'une des options suivantes
-s string
Print a checksum of the given string.
-p Echo stdin to stdout and append the checksum to stdout.
-q Quiet mode - only the checksum is printed out. Overrides the -r option.
[jaypal:~/Temp] md5 -s 'this will be encrypted'
MD5 ("this will be encrypted") = 502810f799de274ff7840a1549cd028a
[jaypal:~/Temp] md5 -qs 'this will be encrypted'
502810f799de274ff7840a1549cd028a
Remarque : MD5 produit toujours le même hachage. La raison pour laquelle vous trouvez un résultat différent de l'exemple donné ci-dessus est due à un point qui a été soulevé dans les commentaires. Les deux premiers exemples utilisent la terminaison newline
pour produire le hachage. Pour éviter cela, vous pouvez utiliser :
[jaypal:~/Temp] echo -n "this will be encrypted" | md5
502810f799de274ff7840a1549cd028a
Par exemple, si vous utilisez echo -n "string" | md5
(notez le -n
), vous obtenez b45cffe084dd3d20d928bee85e7b0f21
. Mais, si vous utilisez echo "string" | md5
vous obtenez b80fa55b1234f1935cea559d9efbc39a
.
Ou bien, vérifiez-le avec le shell :
➜ [jaypal:~/Temp] [ $(echo "HOLA" | md5) = $(echo "HOLA" -n | md5) ]; echo "$?"
1
# 1 -> False. Hence, the result from echoing "HOLA" toggling the -n flag
# outputs different md5 checksums.
Faites également attention aux terminaisons de ligne. Vous avez haché "ceci sera crypté". \n ". La somme MD5 de "ceci sera crypté" est de 502810f799de274ff7840a1549cd028a
que vous pouvez obtenir via echo -n "this will be encrypted" | md5
.
OSX utilise md5
mais la plupart des Unices utilisent md5sum
Voici une section de rvm Le code de validation de rvmrc qui trouve le binaire md5 correct et l'enveloppe.
__rvm_md5_for()
{
if builtin command -v md5 > /dev/null; then
echo "$1" | md5
elif builtin command -v md5sum > /dev/null ; then
echo "$1" | md5sum | awk '{print $1}'
else
rvm_error "Neither md5 nor md5sum were found in the PATH"
return 1
fi
return 0
}
( Code de https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/rvmrc )
La façon correcte de procéder serait echo -n string | md5
au lieu de echo "string" | md5
. (J'utilise zsh)
Convertir le hachage md5 donné par echo -n string | md5
vous récupérerez string
.
md5 -s string
fonctionne également, ce qui a déjà été souligné ici.
λ [~] → echo "string" | md5
b80fa55b1234f1935cea559d9efbc39a
λ [~] → echo -n string | md5
b45cffe084dd3d20d928bee85e7b0f21
λ [~] → md5 -s string
MD5 ("string") = b45cffe084dd3d20d928bee85e7b0f21
Toutes les autres réponses sont valables. Je voudrais également proposer openssl
également :
➜ echo 'this will be hashed' | openssl md5
55be2dc2df2c1cc7bad72a0ecb338841
ce qui est équivalent à ce qui suit
➜ echo 'this will be hashed' | openssl dgst -md5
# or
➜ openssl md5 <<< 'this will be hashed'
# or
➜ echo 'this will be hashed' | md5
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.