Это краткое руководство объясняет, как проверить SHA1-хэш файла в Linux, FreeBSD и Unix-подобных системах с помощью команды sha1sum или sha1.
Мы можем использовать команду sha1sum или sha1 для вычисления и проверки дайджеста сообщения SHA1.
Часто поставщики информационных технологий предоставляют драйверы или файлы BIOS для вашей системы вместе с дайджестом сообщения SHA-1.
Следовательно, мы можем проверить целостность загруженного файла, используя контрольные суммы файла.
Шифрование и Хэширование. Отличие и применение
Как проверить SHA1-хэш файла на Linux?
Процедура проверки SHA-1 заключается в следующем:
- Загрузите файл, включая файл контрольной суммы SHA1.
- Откройте приложение терминала на Linux или Unix.
- Затем выполните команду:
sha1sum -c checksump_filename.
- На экране должно появиться сообщение “OK”, после чего вы сможете безопасно использовать файл в системах Linux, FreeBSD и Unix.
Как просмотреть хэш SHA-1 файла
Чтобы посмотреть SHA-1 файла, используйте следующий синтаксис:
13acdb267496eac304dd303c6baafaf502052d7e /etc/hosts
Как создать SHA-1 файла в Linux или Unix
Просто используйте команду cat или команду echo:
echo -n '13acdb267496eac304dd303c6baafaf502052d7e /etc/hosts' > hosts.sha1
Или попробуйте простой синтаксис:
sha1sum /etc/hosts > hosts.sha1
Как проверить SHA-1?
Допустим, поставщик предоставил вам только хэш следующего вида, и тогда нам нужно проделать небольшую работу:
2916A71BB7E1B8B5B2ECE65AC087DB21A2F19262
Сначала используйте команду cd, чтобы войти в каталог, где хранится ваш файл.
Например:
cd ~/Downloads/
Далее проверьте файл DNi70074.bio с помощью команды ls:
ls -l DNi70074.bio
Теперь создайте новый файл с помощью команды echo/printf.
Синтаксис следующий:
SHA1 filename
Например:
echo -n '2916A71BB7E1B8B5B2ECE65AC087DB21A2F19262 DNi70074.bio' > DNi70074.bio.sha1
Наконец, считайте SHA1-суммы из ФАЙЛОВ и проверьте их:
sha1sum -c DNi70074.bio.sha1 sha1sum --check --ignore-missing DNi70074.bio.sha1
Вы можете проверить его без создания нового файла следующим образом:
$ echo -n '2916A71BB7E1B8B5B2ECE65AC087DB21A2F19262 DNi70074.bio' | sha1sum -c - DNi70074.bio: OK
Получение справки о команде sha1sum
Прочитайте страницу man в Интернете или воспользуйтесь командой man:
man sha1sum
sha1sum --help
Usage: sha1sum [OPTION]... [FILE]... Print or check SHA1 (160-bit) checksums. With no FILE, or when FILE is -, read standard input. -b, --binary read in binary mode -c, --check read SHA1 sums from the FILEs and check them --tag create a BSD-style checksum -t, --text read in text mode (default) -z, --zero end each output line with NUL, not newline, and disable file name escaping The following five options are useful only when verifying checksums: --ignore-missing don't fail or report status for missing files --quiet don't print OK for each successfully verified file --status don't output anything, status code shows success --strict exit non-zero for improperly formatted checksum lines -w, --warn warn about improperly formatted checksum lines --help display this help and exit --version output version information and exit The sums are computed as described in FIPS-180-1. When checking, the input should be a former output of this program. The default mode is to print a line with checksum, a space, a character indicating input mode ('*' for binary, ' ' for text or where binary is insignificant), and name for each FILE. GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation at: <https://www.gnu.org/software/coreutils/sha1sum> or available locally via: info '(coreutils) sha1sum invocation'
Проверка хэша SHA1 на FreeBSD
В системах FreeBSD и macOS Unix необходимо использовать команду sha1 следующим образом:
sha1 -c 'SHA1_STRING_HERE' file_to_check
Например:
sha1 -c '2916A71BB7E1B8B5B2ECE65AC087DB21A2F19262' DNi70074.bio
Выходные данные показывают, что все в порядке:
SHA1 (DNi70074.bio) = 2916a71bb7e1b8b5b2ece65ac087db21a2f19262
неудачный вывод выглядит следующим образом:
sha1 -c '2916A71BB7E1B8B5B2ECE65AC087DB21A2F192624foo_bar' DNi70074.bio
SHA1 (DNi70074.bio) = 2916a71bb7e1b8b5b2ece65ac087db21a2f19262 [ Failed ]
см. также:
#️⃣ Что такое HMAC (Hash-based Message Authentication Code)