Odpowiedzi:
Możesz użyć
openssl dgst -sha256 <file>
Testowane na LibreSSL 2.6.4 na macOS 10.14 (Mojave).
Przed Mojave możesz użyć openssl sha -sha256 <file>
lub openssl sha256 <file>
.
Aby sprawdzić opcje wiersza poleceń za pomocą polecenia openssl sha: openssl sha -help
.
System OS X jest dostarczany z poleceniem shasum .
> which shasum
/usr/bin/shasum
Możesz użyć:
> shasum -a 256 <file>
Więcej szczegółów:
> shasum --help
Usage: shasum [OPTION]... [FILE]...
Print or check SHA checksums.
With no FILE, or when FILE is -, read standard input.
-a, --algorithm 1 (default), 224, 256, 384, 512, 512224, 512256
-b, --binary read in binary mode
-c, --check read SHA sums from the FILEs and check them
-t, --text read in text mode (default)
-p, --portable read in portable mode
produces same digest on Windows/Unix/Mac
-0, --01 read in BITS mode
ASCII '0' interpreted as 0-bit,
ASCII '1' interpreted as 1-bit,
all other characters ignored
The following two options are useful only when verifying checksums:
-s, --status don't output anything, status code shows success
-w, --warn warn about improperly formatted checksum lines
-h, --help display this help and exit
-v, --version output version information and exit
When verifying SHA-512/224 or SHA-512/256 checksums, indicate the
algorithm explicitly using the -a option, e.g.
shasum -a 512224 -c checksumfile
The sums are computed as described in FIPS-180-4. When checking, the
input should be a former output of this program. The default mode is to
print a line with checksum, a character indicating type (`*' for binary,
` ' for text, `?' for portable, `^' for BITS), and name for each FILE.
Report shasum bugs to mshelor@cpan.org
which shashum
nic nie wyświetla
/usr/bin
opcjonalnymi rzeczami. Będę musiał sprawdzić, czy dzisiaj tak jest. Zaktualizuje odpowiedź, jeśli rzeczywiście pochodzi z instalacji XCL.
shasum
zwraca inny hash niż openssl sha -sha256 <file>
(przy czym ten ostatni jest poprawnym hash). Masz pomysł, dlaczego?
shasum
to skrypt perla, używany Digest::SHA
do obliczania wartości skrótu. Dla tego samego pliku otrzymuję dokładnie ten sam SHA przy użyciu albo shasum
albo openssl
do SHA-256
obliczenia skrótu. Zobacz: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
Aby wyjaśnić użyteczną odpowiedź @ John - która pozwala porównać dany skrót z jego plikiem w jednym poleceniu:
Enter shasum -a 256 -c <<<
,
następnie opcjonalną spację,
następnie pojedynczy tik ( '
),
następnie skrót do porównania,
następnie spację
i znak trybu, w oparciu o sposób wygenerowania początkowego skrótu:
nic , jeśli skrót został utworzony z -t
opcją lub bez (tryb tekstowy, który jest domyślny)
gwiazdka ( *
), jeśli skrót został utworzony za pomocą -b
(tryb binarny)
znak zapytania ( ?
), jeśli skrót został utworzony za pomocą -p
(tryb przenośny)
caret ( ^
), jeśli skrót został utworzony za pomocą -0
(tryb bitów)
następnie ścieżka do pliku,
a następnie zamykający pojedynczy tik ( '
).
Podobnie jak w poniższym podziale, z wytyczaniem parenów wokół części skrótu i ścieżki plików oraz nawiasów kwadratowych wokół opcjonalnej części „postaci trybu”. ( Nie uwzględniaj parens ani nawiasów w prawdziwym życiu - są tutaj tylko po to, aby części były dobrze widoczne! )
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
W podziale :
Rzeczywiste polecenie shasum toshasum -a 256 -c
-a 256
mówi, shasum
aby użyć sha256 .
-c
każe shasum
„sprawdzić” podane dane wejściowe.
Jest <<<
to zestaw znaków specjalnych Unix / Linux, zwany operatorem „przekierowania”. Służy do karmienia czegoś wcześniejszym poleceniem. Korzystając z niego, mówimy, że podamy ciąg informacji, których shasum
komenda ma użyć jako danych wejściowych.
Ciąg informacji wejściowych musi zawierać otwierające i zamykające pojedyncze tiki, takie jak 'some string here'
, lub w tym przypadku, hash, znak trybu i ścieżka pliku do sprawdzenia.
Część hash wewnątrz łańcucha nie potrzebuje niczego specjalnego - ale po niej musi być spacja.
Część znaku trybu może być niczym, gwiazdką ( *
), znakiem zapytania ( ?
) lub karetką ( ^
). Mówi shasum
to o trybie, w którym wygenerowano skrót. (Uwaga: shasum
domyślnie nie ma znaku reprezentującego tryb tekstowy ).
Filepath część, jest rzeczywista ścieżka do pliku, który ma zostać sprawdzony.
Oto prawdziwy przykład sprawdzający konkretny plik do pobrania MAMP z jego rzekomą wartością SHA-256 . *
Charakter tryb był wymagany dla tej kontroli do pracy:
shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'
Uwaga: wynikiem tego polecenia (dla mojego przykładowego pliku) jest albo -
DOBRZE:
MAMP_MAMP_PRO_5.2.pkg: OK
lub
AWARIA:
MAMP_MAMP_PRO_5.2.pkg:
AWARIA shasum: OSTRZEŻENIE: 1 obliczona suma kontrolna NIE pasuje
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
zwraca wiadomość *sample.txt: FAILED open or read
. Bez gwiazdką sample.txt: OK
. Nie byłem jeszcze w stanie znaleźć podstawy użycia gwiazdki w innym miejscu. Czy możesz to wyjaśnić?
--binary
opcją)? Ze strony podręcznika: „Podczas sprawdzania, wejście powinno być wcześniejszym wyjściem tego programu. Domyślnym trybem jest wydrukowanie wiersza z sumą kontrolną, znakiem wskazującym typ ( *
dla binarnego,` `dla tekstu, U
dla UNIWERSALNEGO, ^
dla BITÓW, ?
dla urządzeń przenośnych) i nazwę dla każdego PLIKU ”. Więc znaki między sumą kontrolną a nazwą pliku zależą od trybu ustawionego podczas tworzenia sumy kontrolnej?