#️⃣ Как проверить хэш SHA1 в Linux, FreeBSD и Unix

Это краткое руководство объясняет, как проверить 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 ]