Проверим контрольную сумму SHA с помощью скрипта.
Проблема
Во многих случаях контрольная сумма SHA предоставляется как есть, файл контрольной суммы содержит только контрольную сумму.
Это создает проблему для стандартных служб.
Поскольку они ожидают имя файла, связанное с заданной контрольной суммой, используя формат GNU или BSD.
Такая контрольная сумма может быть проверена без каких-либо проблем.
Решение
Решение заключается в создании простого скрипта оболочки, который будет выполнять дополнительные шаги для проверки контрольной суммы SHA.
#!/bin/bash # verify file checksum from a file # checksum algorithms algorithms=( 1 224 256 384 512 512224 512256 ) # file to check file="$1" # execute when there is one parameter if [ "$#" -eq "1" ]; then # check if file exist if [ -f "${file}" ]; then # find checksum file for algorithm in "${algorithms[@]}"; do if [ -f "${file}.sha${algorithm}" ]; then echo "Found SHA${algorithm} checksum" words="$(wc -w < ${file}.sha${algorithm})" # verify checksum and pass the exit code if [ "$words" == "1" ]; then shasum --algorithm $algorithm --check <(echo $(cat ${file}.sha${algorithm}) $file) exit $? elif [ "$words" == "2" ] || [ "$words" == "4" ]; then shasum --algorithm $algorithm --check ${file}.sha${algorithm} exit $? fi fi done fi fi
Он автоматически проверит контрольную сумму SHA (в стиле GNU или BSD).
Он также будет работать с файлом, содержащим только контрольную сумму.
Вы будете проинформированы в случае возникновения проблем.
Вы можете немного расширить его, чтобы возвращать различные коды выхода, когда файл или его контрольная сумма не найдены.
см. также:
- 🔎 Примеры команд unshadow на Linux
- #️⃣ Как проверить хэш SHA1 в Linux, FreeBSD и Unix
- 🦟 SharpHide: инструмент для создания скрытых ключей реестра
- 🔒 Учебное пособие по алгоритму хеширования SHA1 с примерами использования