Comment obtenir le hachage MD5 d'une chaîne directement dans le terminal?

147

Comment puis-je obtenir le hachage MD5 d’une chaîne directement depuis le terminal?

Par exemple, je souhaite que la chaîne abcdefg soit hachée. Actuellement, la commande md5sum n'accepte qu'un nom de fichier en entrée. Je veux simplement entrer dans la ligne suivante et tout faire avec.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

Comment puis-je y parvenir?

    
posée Hamed Momeni 20.07.2011 - 13:08
la source

7 réponses

193

Vous pouvez aussi dire quelque chose comme ceci:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

Il fait essentiellement la même chose que celle décrite par @enzotib, mais est peut-être un peu plus simple.

    
réponse donnée jfmessier 20.07.2011 - 13:47
la source
57

Très simple, il accepte stdin, donc

md5sum <<<"my string"

Pour éviter le retour à la ligne ajouté par le shell:

printf '%s' "my string" | md5sum
    
réponse donnée enzotib 20.07.2011 - 13:10
la source
19
$ echo -n 123456 | md5sum | awk '{print }'
e10adc3949ba59abbe56e057f20f883e

vous pouvez créer un script shell.

Par exemple, le nom du script est md5.sh:

#!/bin/bash

echo   -n    | md5sum | awk '{print }'
permission

exécuter:

 chmod +x md5.sh

Alors:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

Si votre système est MacOS. Vous devez modifier ce script:

$ echo -n 123456 | md5 | awk '{print }' 
e10adc3949ba59abbe56e057f20f883e
    
réponse donnée ty4z2008 09.03.2015 - 05:54
la source
9

L'exécution de md5sum sans aucun argument entraînera la lecture des entrées du terminal. Tapez ou collez ce que vous voulez, et lorsque vous avez terminé, appuyez sur ctrl-d pour terminer la saisie.

    
réponse donnée psusi 27.07.2011 - 17:46
la source
8
openssl md5 filename
openssl sha1 filename

Pour le string string le contenu en utilisant echo

echo -n 123456 | openssl md5
    
réponse donnée guest 10.12.2015 - 12:13
la source
3

Mon petit coup sur --help pour md5sum montre que la commande:

md5sum -

donnera alors une invite pour une saisie simple. Saisir du texte puis utiliser Enter puis Ctrl + D pour indiquer la fin du fichier, puis md5sum crache le MD5 du fichier. le texte brut que vous avez entré (y compris celui Enter , c’est un CR, IIRC).

Moins à taper et pas de tuyauterie! Et en évitant que votre mot de passe en texte clair ne soit enregistré dans l’historique du shell! Woo!

Si vous ne voulez pas que le CR final (ce qui est généralement le cas si vous voulez hacher un mot de passe), ne tapez pas sur Enter avant Ctrl + D , entrez plutôt Ctrl + D deux fois.

    
réponse donnée Will 21.08.2013 - 08:00
la source
2

Dans mes scripts, j'ai constaté qu'il y avait deux choses à savoir sur ce problème.

  • Peu importe si vous faites echo "$myvariable" ou echo -n "$myvariable" mais vous devez toujours utiliser les doublesqoutes pour les chaînes et toujours utiliser la même méthode. sinon les choses ne correspondent pas.
  • dans la sortie, vous obtenez toujours un espace de fin et un tiret comme indiqué dans l'exemple:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

pour s'en débarrasser et rester uniquement avec le code 7803ffcaea43bb81a439fde13b29bc35 , faire: echo "$myvariable" | md5sum | cut -d" " -f1

    
réponse donnée Bodo Hugo Barwich 02.08.2014 - 15:39
la source

Lire d'autres questions sur les étiquettes