Question Pourquoi ai-je des résultats différents du shasum de Mac que des autres calculatrices Shasum?


J'entre:

appletree:~ somename$ shasum -a 512 <<< test

Et la sortie est la suivante:

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

Ensuite, je vais sur des générateurs de hachage en ligne et saisis "test" aussi. Leurs réponses sont:

http://hashgenerator.de/:

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

http://passwordsgenerator.net/sha512-hash-generator/:

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

Donc, les générateurs en ligne sont d'accord. Que manque-t-il dans la commande de la console Mac?

Je lisais le man pages. Je vois qu'il est implémenté en utilisant 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 en 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, ce qui est inattendu, elle émerge d'une situation différente.

  • <<< est un ici la ficelle, et il y a un choix du design pour savoir comment les chaînes ajoutent une nouvelle ligne.
  • echo 'bla' | signifie «canalisation», qui invoque des sous-shells, et dispose également d’arguments pour gérer la nouvelle ligne. Ici, il semble que vous devez considérer le version shell.

12
2018-02-18 08:32


origine


Merci beaucoup à sideshowbarker et à Spiff. Whitespace frappe encore ^^ ^^ - peter_the_oak
Duplicata possible de md5: Pourquoi mon hachage en ligne de commande est-il différent des résultats de hachage md5 en ligne? - muru
Notez qu'une chaîne ici est destinée à être exactement identique à un document d'une ligne ici, et un document ici se termine toujours par une nouvelle ligne. - chepner
Je ne suis pas nouveau à inventer, mais voici quelques détails et nouvelles sophistiqués pour lesquels je suis reconnaissant. Alors merci pour tous les commentaires et réponses. - peter_the_oak
Nous avons donc constaté que la commande shasum de Mac n'est pas différente. Le problème était techniquement une erreur de l'utilisateur et concernait la transmission des données et non le programme. Puis-je suggérer de renommer la question "Pourquoi obtenir des résultats différents du shasum de Mac ..." De cette manière, les utilisateurs peuvent instantanément suspecter un problème créé par l'utilisateur. (Si je l'avais vu, j'aurais peut-être été moins enclin à vérifier cette question maintenant. Comme actuellement, "Qu'est-ce qui distribue le shasum du shell Mac à partir d'autres calculatrices Shasum?" ce qui n'est pas ce que cela a effectivement fini comme - TOOGAM


Réponses:


La contribution à la shasum invocation dans la question est test\n (avec une nouvelle ligne), pas test.

Si vous donnez test sans nouvelle ligne à shasum vous obtiendrez le même résultat que les outils en ligne que vous citez:

$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff  -

Par ailleurs, je pense qu'il n'y a rien de spécial ou de spécifique à MacOS sur le shasum trouvé sur MacOS; je pense shasum fait partie de la distribution standard de Perl avec, par exemple, le perl commander.


32
2018-02-18 09:24





Essaye ça:

hexdump -C <<< test

Connaissant les shells Unix, vous obtenez probablement un 0x0a indésirable à la fin de cette chaîne.


19
2018-02-18 09:29



od va étiqueter les caractères de contrôle et rendre le plus apparent; essayer: od -t a -t x1 <<< test (hexdump jamais utilisé), - toddkaufmann