Файл повреждён после передачи? Как предотвратить потерю данных
Файлы повреждены после передачи? Узнайте почему и как это предотвратить. Проверка контрольных сумм и сервисы с гарантией целостности.
Повреждение файла при передаче — редкость на современных HTTPS-сервисах: контрольные суммы TCP, целостность TLS 1.3 и теги аутентификации AES-GCM перехватывают битовые ошибки ещё в пути. Когда повреждение всё же происходит, причина почти всегда на конечных точках: прерванная загрузка, записавшая неполный файл, ошибки диска при записи или баг клиента, обрывающего потоки. Проверяйте SHA-256-хеш на обеих сторонах. Если хеши совпадают — файл идентичен. Если нет — повторите передачу. Сервисы с шифрованием AES-256-GCM обеспечивают встроенную аутентификацию: успешная расшифровка сама по себе доказывает целостность.
Почему передача редко повреждает файл в пути
Каждый HTTPS-запрос несёт проверку целостности TLS. TLS 1.3 с AEAD-шифрами, такими как AES-256-GCM или ChaCha20-Poly1305, создаёт тег аутентификации для каждой записи. Если бит изменился в пути — проверка тега не пройдёт и запись будет отклонена прежде, чем попадёт в приложение. TCP добавляет собственную 16-битную контрольную сумму на каждый сегмент. Суммарная вероятность незамеченного повреждения при прохождении обеих проверок ничтожно мала — около 1 на 2^128 только для TLS.
Незашифрованные протоколы (FTP, plain HTTP) менее устойчивы. Контрольная сумма TCP пропустит часть ошибок; биты могут незаметно измениться на промежуточном оборудовании с дефектной памятью. Это веская причина отказаться от plain FTP для крупных передач — и не только из-за утечки учётных данных.
Где повреждение происходит на самом деле
Наиболее распространённые причины повреждения после передачи, в порядке убывания частоты:
Прерванная загрузка, сохранённая как неполный файл. Загрузка в браузере, потерявшая соединение на 75%, нередко сохраняет файл на 75% — он «присутствует» в папке «Загрузки», но открывается повреждённым. Chrome и Firefox теперь обычно помечают такие файлы расширениями .crdownload или .part, однако старые версии и часть сторонних менеджеров этого не делают.
Ошибки записи на локальный диск. Отказывающий внешний накопитель, заполненный диск или сбойный сектор приводят к частичной записи. Windows не всегда сообщает об этом явно; macOS делает это немного чаще.
Карантин антивируса, изменяющего файл. Антивирус в режиме реального времени иногда вырезает исполняемые секции или модифицирует архивы прямо в процессе загрузки, чтобы «санировать» их. Файл формально присутствует, но логически повреждён.
Баг клиента, обрывающего потоки. Редко встречается в актуальных клиентах, однако ряд устаревших FTP-клиентов и пользовательских скриптов загрузки имеет известные ошибки усечения.
Проверка с помощью SHA-256-хешей
Единственный надёжный способ доказать целостность переданного файла — вычислить криптографический хеш на обеих сторонах и сравнить результаты. SHA-256 универсален, быстр (500 МБ/с на современных процессорах с AES-NI) и устойчив к коллизиям.
macOS/Linux: shasum -a 256 file.mov. Windows 10+: certutil -hashfile file.mov SHA256. Обе команды выводят 64-символьную шестнадцатеричную строку. Отправьте хеш вместе со ссылкой («SHA256: a1b2c3...»), чтобы получатель мог проверить файл после загрузки.
Если хеши совпадают — файл побитово идентичен. Если отличаются — повторите передачу.
AES-GCM обеспечивает целостность автоматически
Сервисы, использующие AES-256-GCM (аутентифицированное шифрование со связанными данными), включают тег аутентификации в каждый блок. При расшифровке получателем проваленная проверка тега означает, что шифротекст был изменён или повреждён — расшифровка завершается с явной ошибкой вроде «GCM authentication failed».
Это означает: если файл успешно расшифровался — он гарантированно не изменён. Отдельная проверка SHA-256 на стороне получателя не нужна. HexaTransfer, защищённый режим Smash, SwissTransfer, Tresorit Send и Proton Drive используют AES-GCM или XChaCha20-Poly1305 именно по этой причине.
Как обнаружить неполную загрузку
Явный признак частичной загрузки: размер файла на диске меньше того, что указывала страница передачи. Щёлкните файл правой кнопкой, проверьте размер и сравните с тем, что сообщал отправитель. Если они не совпадают — загрузка не завершена.
Медиафайлы хорошо это демонстрируют. Неполный MP4 воспроизводится минуту и обрывается. Неполный ZIP выдаёт «архив повреждён» при распаковке. Неполный PDF показывает несколько страниц, а затем — ошибку. Текстовые файлы нередко открываются без проблем, но оказываются усечены — и это самый неприятный случай, потому что незаметен.
Возобновляемые загрузки при нестабильном соединении
Если соединение получателя обрывается во время загрузки, поддержка возобновления критична. HTTP range requests (RFC 7233) позволяют клиенту начать с заданного смещения. curl обрабатывает это с флагом -C -, wget — с -c. Браузерные менеджеры загрузок различаются; Firefox и Chrome возобновляют загрузку в рамках одной сессии, если сервер поддерживает диапазонные запросы.
Сервисы, использующие простой POST или не поддерживающие заголовок Range, вынуждают при обрыве начинать заново. Для файла в 10 ГБ через мобильный интернет со скоростью 20 Мбит/с это очень неудобно.
Вмешательство антивируса
Windows Defender, Avast, Bitdefender и McAfee иногда перехватывают загрузки на лету для проверки. Обычно это незаметно. Однако для архивов или исполняемых файлов антивирус может «очистить» файл, удалив содержимое или заменив его заглушкой карантина.
Если файл стабильно скачивается повреждённым на машине получателя, попросите его временно отключить антивирус реального времени и повторить попытку. Если загрузка прошла успешно — виновен антивирус. Добавьте домен сервиса передачи в список исключений.
Проблемы с дисковым пространством и файловой системой
Загрузка может быть повреждена, если целевой диск заполнился в процессе записи. macOS пишет через слой снимков APFS и обычно явно сообщает об ошибках. Windows NTFS склонна к молчаливому усечению. На внешних накопителях проверяйте свободное место перед началом загрузки 10 ГБ.
Ошибки файловых систем редки, но реальны. exFAT в старых версиях Windows исторически имел баги усечения файлов размером более 4 ГБ. ext4, NTFS и APFS надёжны на актуальных версиях ОС.
Специализированные валидаторы по типу файла
Видеофайлы: ffprobe -v error file.mp4 тихо выводит ошибки. Если вывод пуст — структура контейнера цела. Для детального анализа: ffmpeg -v error -i file.mp4 -f null - обходит каждый кадр и сообщает об ошибках декодирования.
PDF: команда «Validate» в Acrobat проверяет структуру объектов. qpdf --check file.pdf делает то же из командной строки.
Медицинские изображения DICOM: dcmdump file.dcm из DCMTK проверяет обязательные теги и структуру — это важно для больничных систем PACS, отклоняющих некорректные файлы.
Архивы: unzip -t file.zip и 7z t file.7z тестируют без распаковки. Быстро и выявляет большинство повреждений.
Выбор сервиса со встроенной гарантией целостности
Для критически важных передач выбирайте сервис, который обеспечивает криптографическую целостность по умолчанию. Сквозное шифрование AES-GCM, отображение SHA-256-хеша на странице загрузки или явная проверка контрольных сумм в клиенте дают вам доказательство, а не надежду. HexaTransfer использует AES-256-GCM, поэтому успешная расшифровка сама подтверждает, что файл не был изменён, а лимит 10 ГБ на передачу покрывает большинство профессиональных задач.
Попробуйте на hexatransfer.com — бесплатно, без регистрации, до 10 ГБ.
Безопасная отправка больших файлов со сквозным шифрованием
Передавайте файлы до 10 ГБ бесплатно со сквозным шифрованием. Регистрация не требуется. Ваши файлы шифруются в браузере перед загрузкой — никто другой не может их прочитать.
Отправить файл