Відповіді:
Можна використовувати
openssl dgst -sha256 <file>
Тестовано на LibreSSL 2.6.4 на macOS 10.14 (Mojave).
До Mojave ви можете використовувати openssl sha -sha256 <file>
або openssl sha256 <file>
.
Для перевірки параметрів командного рядка для команди OpenSSL ша: openssl sha -help
.
OS X постачається командою шасума .
> which shasum
/usr/bin/shasum
Ви можете використовувати:
> shasum -a 256 <file>
Детальніше:
> 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
виходить нічого
/usr/bin
необов'язкові речі. Мені доведеться переконатися, що це справа пізніше сьогодні. Оновить відповідь, якщо вона дійсно прийшла від встановлення XCL.
shasum
повертає інший хеш, ніж openssl sha -sha256 <file>
(останній - правильний хеш). Будь-яка ідея чому?
shasum
- це сценарій perl, який використовує Digest::SHA
для обчислення хеш-значення. Для того ж файлу я отримую один і той же алгоритм SHA , використовуючи або shasum
або openssl
для SHA-256
хеш - обчислень. Дивіться: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
Щоб уточнити корисну відповідь @ John - яка дозволяє порівнювати заданий хеш із його файлом в одній команді:
Введіть shasum -a 256 -c <<<
,
а потім - необов'язковий пробіл,
а потім - один галочок ( '
),
за ним - хеш для порівняння,
а потім пробіл,
а потім символ режиму на основі того, як генерувався початковий хеш:
нічого , якщо хеш був створений з -t
опцією чи ні (текстовий режим, який є типовим)
зірочка ( *
), якщо хеш створено за допомогою -b
(двійковий режим)
знак питання ( ?
), якщо хеш створено за допомогою -p
(портативний режим)
caret ( ^
), якщо хеш створений за допомогою -0
(біт режим)
Далі йде шлях до файлу,
після чого закривається одна галочка ( '
).
Як і наступна розбивка з розмежуванням паренів навколо частин хеш-файлів і квадратних дужок навколо необов'язкової частини "характер символу". ( Не включайте парен або кронштейни в реальному житті - вони просто тут, щоб деталі були легко видно! )
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
Зламано :
Фактична команда шасумаshasum -a 256 -c
-a 256
говорить shasum
використовувати sha256 .
-c
каже shasum
"перевірити" наданий вхід.
Це <<<
спеціальний набір символів Unix / Linux, який називається оператором "перенаправлення". Це для подачі чогось у попередню команду. Використовуючи його, ми говоримо, що ми будемо надавати рядок інформації для shasum
команди, яка використовуватиметься як вхід.
Рядок вхідної інформації повинен мати відкриття та закриття одиночних галочок, таких як 'some string here'
, або в цьому випадку, хеш, символ режиму та шлях файлу, який потрібно перевірити.
Хеш частина всередині рядка нічого особливого не потрібно - але це повинно супроводжуватися прогалиною.
Символьний режим частина не може бути нічим іншим, зірочка ( *
), знак питання ( ?
), або каретка ( ^
). Це повідомляє shasum
про режим, у якому генерувався хеш. (Примітка: жоден символ, що представляє текстовий режим, не є shasum
за замовчуванням.)
Шлях_до_файлу частина, це реальний шлях до файлу , який необхідно перевірити.
Отже, ось приклад із реального життя, який перевіряє певний файл завантаження MAMP на предмет передбачуваного значення SHA-256 . Для *
роботи цієї перевірки потрібен символ режиму:
shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'
Примітка: результат цієї команди (для мого прикладу файлу) -
ГАРАЗД:
MAMP_MAMP_PRO_5.2.pkg: Гаразд
або
НЕПРЯМО:
MAMP_MAMP_PRO_5.2.pkg:
НЕПРАВНИЙ шамсум: ПОПЕРЕДЖЕННЯ: 1 обчислена контрольна сума НЕ відповідає
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
повертає повідомлення *sample.txt: FAILED open or read
. Без зірочки , sample.txt: OK
. Я ще не змогла знайти основи використання зірочки в іншому місці. Не могли б ви уточнити?
--binary
опцією)? На сторінці чоловіка: "Під час перевірки вхід повинен бути колишнім результатом цієї програми. Режим за замовчуванням - це друк рядка з контрольною сумою, символом, що вказує на тип ( *
для двійкового,` `для тексту, U
для UNIVERSAL, ^
для BITS, ?
для портативного) та ім'я кожного ФАЙЛУ. " Отже, символи між контрольною сумою та назвою файлу залежать від режиму, встановленого при створенні контрольної суми?