Разбираемся · Создание онлайн-курсов

Контрольная сумма файла: как проверить материалы онлайн-курса

Сравните исходный файл и скачанную копию по SHA256. Разберём команды для Windows и macOS, одинаковые имена и размеры, а также отличия новой версии от повреждения.

В этом материале

Сформулируйте, какие две копии сравниваете

Перед запуском модуля полезно проверить, что ссылка выдаёт именно утверждённый файл задания. Название exercise.csv и привычный размер сами по себе этого не доказывают. Контрольная сумма позволяет сопоставить содержимое исходника с тем, что фактически скачал проверяющий. Для такого сравнения выберем один алгоритм — SHA256 — и применим его к обеим копиям.

Сначала назначьте эталон: файл, который редактор уже открыл, сверил с условием и утвердил для конкретного урока. Скопируйте его в отдельную папку проверки. Затем скачайте материал по ученической ссылке в другую папку. Не открывайте скачанный документ с последующим сохранением перед вычислением суммы: так в проверку попадёт уже обработанная копия.

Эта процедура дополняет понятные названия и версии учебных файлов. Она отвечает на узкий вопрос о совпадении содержимого. Правильность формул, полноту задания и возможность открыть ссылку всё равно нужно проверять отдельно.

Посмотрите, почему одинакового размера недостаточно

Возьмём искусственный CSV из двух строк: заголовок module,score и запись intro,7. При кодировке UTF-8 без BOM, переносах LF и завершающем переносе это 21 байт. Создадим копию с другим именем, не редактируя её, а в третьем файле заменим только цифру 7 на 8.

В проверочном примере все три файла имеют одинаковый размер. У исходника и переименованной копии SHA256 совпадает, у варианта с восьмёркой — отличается. Результат можно воспроизвести на собственных тестовых данных; реальные оценки учеников для этого не нужны. Если редактор добавит BOM или поменяет переносы, байты тоже изменятся, поэтому сначала зафиксируйте способ сохранения.

Для команды курса это означает следующее: пометка «21 байт» не позволяет отличить утверждённые данные от правки. А смена имени при скачивании ещё не означает, что содержимое испорчено. Сравнение должно учитывать полную сумму, а не только имя, дату или несколько первых символов результата.

Вычислите SHA256 в PowerShell

Откройте PowerShell в Windows. Для нашего примера эталон находится в C:\Course\source\exercise.csv. Выполните команду, заменив путь на свой:

Get-FileHash -LiteralPath 'C:\Course\source\exercise.csv' -Algorithm SHA256

Для скачанного файла повторите вычисление с его фактическим расположением:

Get-FileHash -LiteralPath 'C:\Course\download\exercise.csv' -Algorithm SHA256

Команда возвращает алгоритм, значение Hash и путь. Сопоставьте целиком значения Hash и убедитесь, что в обоих случаях указан SHA256. Если окно обрезает длинную строку, увеличьте его ширину или выведите результат списком, добавив к команде | Format-List. Не принимайте видимые начала строк за полное совпадение.

Параметр LiteralPath передаёт имя буквально, без трактовки символов как шаблона поиска. Синтаксис и возвращаемые поля описаны в документации Get-FileHash. Если появилась ошибка отсутствующего файла, исправьте путь; пустой вывод не является успешной проверкой.

Выполните такое же сравнение в macOS

В Терминале используйте shasum с явно выбранным алгоритмом. Пример для эталона в папке Documents:

shasum -a 256 "$HOME/Documents/Course/source/exercise.csv"

Затем вычислите сумму скачанной копии:

shasum -a 256 "$HOME/Documents/Course/download/exercise.csv"

Пути в двойных кавычках сохраняют пробелы в названиях папок, а $HOME обозначает домашний каталог. Подставьте реальное расположение своих файлов. В выводе слева будет сумма, справа — имя; имена могут различаться. Сравнивайте всю последовательность суммы, сохраняя одинаковый алгоритм для обеих команд.

В описании shasum параметр -a выбирает алгоритм, а без него используется SHA-1. Поэтому не убирайте 256 при сравнении с результатом PowerShell.

Разберите несовпадение до повторной загрузки

Разные суммы означают, что выбранные файлы различаются по содержимому. Они не объясняют причину. Проверьте, взят ли эталон нужной версии, не скачан ли вместо CSV документ другой формы, не открывался ли файл с пересохранением. Если подозреваете неполную загрузку, скачайте копию повторно в новую папку и сравните снова.

У видео после перекодирования или у заново экспортированного PDF сумма обычно будет другой. В такой ситуации сравнение с исходным проектом не проверяет качество опубликованного результата. Сначала определите, обещает ли способ выдачи точную копию или преобразованный материал, затем выбирайте подходящий критерий приёмки.

Совпадение SHA256 служит практической проверкой целостности копии, но само по себе не удостоверяет автора и не делает ошибочное задание правильным. Если эталон выбрали неверно, идеально совпавшая загрузка всё равно передаст не ту версию.

Оставьте короткий протокол выпуска

Для каждого проверенного вложения запишите урок, версию эталона, алгоритм, полную сумму, адрес выдачи и дату скачивания. Добавьте результат открытия файла обычным способом. Так редактор сможет отличить «байты совпали» от «задание действительно пригодно для выполнения».

После содержательного обновления утверждайте новый эталон и пересчитывайте сумму. Старую запись оставляйте связанной с прошлым выпуском, особенно если по нему уже сданы работы. Хранение такого комплекта удобно согласовать с резервной копией материалов курса. Для проверки достаточно собственных файлов и указанных утилит: специальная функция вычисления хеша в Umhub здесь не предполагается.

Источники

  1. документации Get-FileHash ↗
  2. описании shasum ↗
Создать аккаунт и собирать свою библиотеку →
От знаний — к своему курсу

Создайте свой курс в Umhub

Примените то, что узнали: соберите программу, добавьте материалы и пригласите учеников.

Создать курс