J'entre:
appletree:~ somename$ shasum -a 512 <<< test
Et la sortie est:
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123 -
Ensuite, je vais sur certains générateurs de hachage en ligne et saisis également "test". Leurs réponses sont:
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
http://passwordsgenerator.net/sha512-hash-generator/ :
EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF
Les générateurs en ligne sont donc d'accord. Que manque-t-il dans la commande de la console Mac?
Je lisais les man
pages. Je vois qu'il est implémenté à l'aide d'une bibliothèque Perl. Cependant, je pense que sha512 serait une désignation unique, donc je dois creuser plus profondément.
Il semble y avoir une question en double: pourquoi mon hachage de ligne de commande est-il différent des résultats de hachage MD5 en ligne? . Alors que l'autre question se situe dans le même contexte, qui est un espace inattendu, elle émerge d'une situation différente.
<<<
est une chaîne ici , et il existe un choix de conception pour la façon dont les chaînes ajoutent une nouvelle ligne.echo 'bla' |
signifie tuyauterie, qui appelle des sous-shells, et a également des arguments sur la façon de gérer la nouvelle ligne. Ici, il semble que vous devez considérer la version shell .
Réponses:
L'entrée de l'
shasum
invocation dans la question esttest\n
(avec une nouvelle ligne), nontest
.Si vous donnez
test
sans nouvelle ligne àshasum
vous obtiendrez la même sortie que les outils en ligne que vous citez:Soit dit en passant, je pense qu'il n'y a rien de spécial ou de spécifique à MacOS à propos de ce que l'on
shasum
trouve sur MacOS; Je pense que celashasum
fait partie de la distribution Perl standard - installée avec, par exemple, laperl
commande.la source
Essaye ça:
Connaissant les shells Unix, vous obtenez probablement un 0x0a indésirable à la fin de cette chaîne.
la source
od
étiquetera les caractères de contrôle et les rendra plus apparents; essayer:od -t a -t x1 <<< test
(jamais vraiment utilisé hexdump),