Comment puis-je obtenir le hachage MD5 d'une chaîne directement à partir du terminal?
Par exemple, je veux que la chaîne soit abcdefg
hachée. Actuellement, la commande md5 n'accepte qu'un nom de fichier en entrée. Je veux simplement entrer la ligne suivante et tout se faire avec.
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Comment puis-je y arriver?
command-line
md5sum
Hamed Momeni
la source
la source
md5 -s abcdefg
Réponses:
Vous pouvez aussi dire quelque chose comme ça:
Il fait fondamentalement la même chose que décrite par @enzotib, mais est peut-être un peu plus simple.
la source
83218ac34c1834c26781fe4bde918ee4 -
-n
est obligatoire. Sans cela, votre hash sera totalement faux puisqu'il inclut le caractère de nouvelle ligne.-
à la fin. @jfmessierTrès simple, il accepte stdin, donc
Pour éviter la nouvelle ligne de fin ajoutée par le shell:
la source
<<<"
tuyau dans un script;echo string
gagne pour la ligne de commande. Bien joué.printf
correctement. Si vous voulez avoir la somme sans le-
, mettez| cut -d ' ' -f 1
. Exemple d'utilisation:sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1)
<<<
opérateur et laprintf
fonction donnent des résultats complètement différents pour le hash md5! le résultat de printf est correct cependant!<<<
opérateur envoie une nouvelle ligne au md5sum!vous pouvez créer un script shell.
Par exemple, le nom du script est md5.sh:
permission execute:
Ensuite:
Si votre système est macOS. Vous devez modifier ce script:
la source
cut -d ' ' -f 1
md5() { echo -n $1 | md5sum | awk '{print $1}'; }
dans .bashrc et je peux ensuite l'utiliser$ md5 test
en ligne de commande. merci pour la réponseawk
Commande plus courte :'$0=$1'
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 mettre fin à la saisie.la source
ctrl+d
faut appuyer deux fois pour que cela fonctionne.Pour la chaîne, faites passer le contenu à l'aide d'écho
la source
Mon rapide coup d'œil sur le
--help
formd5sum
montre que la commande:donnera alors une invite pour une entrée simple. Entrer du texte puis utiliser Enteret puis Ctrl+ Dpour indiquer la fin du fichier provoque
md5sum
le crachage du MD5 du texte brut que vous avez entré (y compris Enterun CR, un IIRC).Moins de dactylographie et pas de tuyauterie! Et en évitant que votre mot de passe en texte brut soit enregistré dans l'historique du shell! Courtiser!
Si vous ne souhaitez pas que ce CR de fin (ce qui est généralement le cas si vous souhaitez hacher un mot de passe), ne frappez pas Enteravant Ctrl+ D, entrez Ctrl+ Ddeux fois à la place.
la source
Dans mes scripts, j'ai constaté qu'il y a 2 choses que vous devriez savoir sur ce problème.
echo "$myvariable"
ou non,echo -n "$myvariable"
mais vous devriez toujours utiliser les doublesQoutes pour les chaînes et toujours utiliser la même méthode. sinon les choses ne vont pas correspondre.dans la sortie, vous obtenez toujours un espace de fin et un tiret, comme indiqué dans l'exemple:
pour vous en débarrasser et ne rester qu'avec le code
7803ffcaea43bb81a439fde13b29bc35
, faites:echo "$myvariable" | md5sum | cut -d" " -f1
la source
-n
paramètre ici pour éviter de sortir le retour à la ligne final, ce qui conduirait à un mauvais md5:echo -n $myvariable | md5sum | cut -d" " -f1
Il existe de nombreux exemples pour ce faire, mais certains d'entre eux ne sont pas équivalents car certains incluent explicitement ou implicitement le retour à la ligne, d'autres pas.
Je voudrais préciser clairement laquelle des méthodes populaires inclut la nouvelle ligne et celles qui ne le sont pas.
Voici quelques exemples pour calculer le hachage md5 SANS le retour à la ligne (CORRECT):
Utiliser un fichier avec du texte:
Note:
-n
inecho
signifie: "ne pas sortir la nouvelle ligne".Utilisation
echo
avec-n
inline:Utilisant
printf
:En utilisant seulement la
md5sum
commande:(Écrivons
md5sum
, appuyez sur Enterpuis écrivez chaînetest
, puis appuyez sur la combinaison double Ctrl+ d)Utilisation de la
md5sum -
commande:(Écrivons
md5sum -
, appuyez sur Enterpuis écrivez chaînetest
, puis appuyez sur la combinaison double Ctrl+ d)Voici quelques exemples pour calculer le hachage md5 avec une nouvelle ligne (SO NOT CORRECT):
Utiliser un fichier avec du texte:
Utilisation de
echo
SANS en-n
ligne:En utilisant ici les chaînes :
En utilisant seulement la
md5sum
commande mais avec la Enterclé après avoir écrit le texte:( Écrivons
md5sum
, appuyez sur Enterpuis écrivez chaînetest
, puis appuyez sur agaien Enteret une fois combinaison Ctrl+ d)En utilisant la
md5sum -
commande mais avec la Enterclé après avoir écrit le texte:( Écrivons
md5sum -
, appuyez sur Enterpuis écrivez chaînetest
, puis appuyez sur agaien Enteret une fois combinaison Ctrl+ d)la source