Wiem, że ciąg „foobar” generuje skrót SHA-256 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
za pomocą
http://hash.online-convert.com/sha256-generator
Jednak powłoka wiersza poleceń:
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
Generuje inny skrót. czego mi brakuje?
sha256sum < foobar
. Nie potrzebujesz kota , echa , printf , ... Zobacz także Bezużyteczne korzystanie z kota?< foobar
to nie to samo coecho foobar |
. Odpowiednikiemecho foobar |
byłoby,sha256sum <<< foobar
ale to dodaje nowy wiersz do foobar, podobnie jakecho
.openssl dgst -sha256 foobar
działa dla mnie na MacOS High Sierra, podczas gdyecho -n foobar | openssl dgst -sha256
dał niepoprawną odpowiedź.Odpowiedzi:
echo
zwykle wypisuje nowy wiersz, który jest pomijany za pomocą-n
. Spróbuj tego:źródło
echo -n foobar | shasum -a 256
printf
;)alias sha256sum='shasum --algorithm 256'
-
jest wypisywana.Jeśli masz zainstalowany
openssl
, możesz użyć:W przypadku innych algorytmów można zastąpić
-sha256
z-md4
,-md5
,-ripemd160
,-sha
,-sha1
,-sha224
,-sha384
,-sha512
lub-whirlpool
.źródło
Jeśli polecenie sha256sum nie jest dostępne (na przykład w systemie Mac OS X 10.9 (Mavericks)), możesz użyć:
echo -n "foobar" | shasum -a 256
źródło
echo -n
działa i jest mało prawdopodobne, że kiedykolwiek zniknie z powodu ogromnego historycznego użycia, jednak w najnowszych wersjach standardu POSIX nowe aplikacje zgodne są „zachęcane do korzystaniaprintf
”.źródło
echo
tworzy końcowy znak nowego wiersza, który również jest mieszany. Próbować:źródło
Uważam, że
echo
tworzy to końcowy znak nowej linii. Spróbuj użyć-n
jako parametru echa, aby pominąć nowy wiersz.źródło