Perché ottengo risultati diversi dallo shasum di Mac rispetto ad altri calcolatori di shasum?


13

Sto entrando:

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

E l'output è:

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

Poi vado ad alcuni generatori di hash online e inserisco anche "test". Le loro risposte sono:

http://hashgenerator.de/ :

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

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

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

Quindi i generatori online sono d'accordo. Cosa mi manca nel comando della console Mac?

Stavo leggendo le manpagine. Vedo che è implementato usando una libreria Perl. Tuttavia, penso che sha512 sarebbe una designazione unica, quindi devo scavare più a fondo.


Sembra che ci sia una domanda duplicata: perché il mio hash da riga di comando è diverso dai risultati hash MD5 online? . Mentre l'altra domanda si trova nello stesso contesto, che è uno spazio bianco inaspettato, emerge da una situazione diversa.

  • <<<è una stringa qui e esiste una scelta di progettazione per come le stringhe qui aggiungono una nuova riga.
  • echo 'bla' |significa piping, che invoca sub shell e ha anche argomenti su come gestire newline. Qui sembra che tu debba considerare la versione della shell .

Grazie mille a sustonbarker e Spiff. Whitespace colpisce ancora ^^ ^^
peter_the_oak il


Si noti che una stringa qui deve essere esattamente identica a un documento qui di una riga e un documento qui termina sempre con una nuova riga.
Chepner,

Non sono nuovo a shell, ma ecco alcuni dettagli sofisticati e notizie per le quali sono grato. Quindi grazie per tutti i commenti e le risposte.
peter_the_oak,

Quindi abbiamo scoperto che il comando shasum di Mac non è diverso. Il problema era tecnicamente un errore dell'utente e riguardava i dati trasmessi, non il programma. Posso suggerire di rinominare la domanda in "Perché ottengo risultati diversi dallo shasum di Mac ..." In questo modo, le persone possono immediatamente sospettare un problema creato dall'utente. (Se l'avessi visto, avrei potuto essere meno propenso a esaminare questa domanda in questo momento. Come attualmente intitolato "Cosa distribuisce lo shasum della shell di mac da altri calcolatori di shasum?", Sono venuto qui per conoscere possibili differenze specifiche per Mac, che non è quello che alla fine è finito
TOOGAM il

Risposte:


32

L'input per l' shasuminvocazione nella domanda è test\n(con una nuova riga), no test.

Se testoffri senza una nuova riga shasumotterrai lo stesso output degli strumenti online che citi:

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

A proposito, penso che non ci sia nulla di speciale o specifico di shasumMacOS in ciò che si trova su MacOS; Penso che shasumfaccia parte della distribuzione standard Perl, installata insieme, ad esempio, al perlcomando.


19

Prova questo:

hexdump -C <<< test

Conoscendo le shell Unix, probabilmente otterrai uno 0x0a indesiderato alla fine di quella stringa.


2
odetichetterà i personaggi di controllo e renderanno più evidente; prova: od -t a -t x1 <<< test(mai usato hexdump),
toddkaufmann
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.