How to calculate CRC of a WinRAR file?
I know CRC calculation algorithm from Wikipedia. About structure of RAR file I read here. For example, there was written:
The file has the magic number of:
Which is a break down of the following to describe an Archive Header:
If I understand correctly, the HEAD_CRC (0x6152) is CRC value of Marker Block (MARK_HEAD). Somewhere I read, that CRC of a WinRAR file is calculated with standard polynomial 0xEDB88320, but when size of CRC is less than 4 bytes, it’s necessary to use less significant bytes. In this case (of course if I undestand correctly) CRC value is 0x6152, so it has 2 bytes. Now I don’t know, which bytes I have to take as less significant. From the standard polynomial (0xEDB88320)? Then 0x8320 probably are less significant bytes of this polynomial. Next, how to calculate CRC of the Marker Block (i. e. from the following bytes: 0x 52 61 72 21 1A 07 00), if we have already right polynomial?
2 Answers 2
There was likely a 16-bit check for an older format that is not derived from a 32-bit CRC. The standard 32-bit CRC, used by zip and rar, applied to the last five bytes of the header has no portion equal to the first two bytes. The Polish page appears to be incorrect in claiming that the two-byte check is the low two-bytes of a 32-bit CRC.
It does appear from the documentation that that header is constructed in a standard way as other blocks in the older format, so that the author, for fun, arranged for his format to give the check value «Ra» so that it could spell out «Rar!» followed by a text-terminating control-Z.
I found another 16-bit check in the unrar source code, but that check does not result in those values either.
Oh, and no, you can’t take part of a CRC polynomial and expect that to be a good CRC polynomial for a smaller check. What the page in Polish is saying is that you would compute the full 32-bit CRC, and then take the low two bytes of the result. However that doesn’t work for the magic number header.
6 способов исправить ошибку контрольной суммы в WinRAR

Вы когда-нибудь пытались распаковать файл архива с помощью WinRAR только для того, чтобы столкнуться с ошибкой контрольной суммы? Эта ошибка обычно возникает, когда есть проблема с файлом архива.
К счастью, вы можете попробовать различные методы устранения неполадок, чтобы устранить ошибку контрольной суммы в WinRAR. Давайте проверим их.
Что такое ошибка контрольной суммы в WinRAR
Ошибка контрольной суммы в WinRAR возникает, когда значение контрольной суммы файла архива не соответствует ожидаемому значению. WinRAR вычисляет значение контрольной суммы на основе содержимого вашего файла архива, что помогает убедиться, что ваш файл не содержит сломанных или поврежденных сегментов.
Если значение контрольной суммы не соответствует ожидаемому, WinRAR не может извлечь файл и выдает ошибку контрольной суммы. Существует несколько возможных причин, по которым значение не совпадает, что в конечном итоге приводит к ошибке контрольной суммы.
- Ваш архивный файл поврежден или содержит битые сегменты.
- Файлы содержат вирусы или вредоносные программы.
- Файл не был загружен должным образом из источника.
1. Включите параметр «Сохранить сломанные файлы».
По умолчанию WinRAR автоматически удаляет повреждения в файле архива. Хотя эта функция обычно работает хорошо, бывают случаи, когда она может удалять сегменты, необходимые для процесса извлечения, что приводит к ошибке контрольной суммы.
Чтобы решить эту проблему, включите функцию WinRAR «Сохранить поврежденные файлы», которая не позволяет WinRAR удалять поврежденные или поврежденные файлы во время извлечения.
Выполните следующие действия, чтобы включить эту функцию:
Теперь WinRAR извлечет ваш архивный файл, не удаляя из него поврежденные или сломанные части. После извлечения вы можете восстановить поврежденные файлы в Windows, используя различные инструменты восстановления, доступные на рынке.
2. Временно отключите программу безопасности
Часто программа безопасности на вашем компьютере может мешать WinRAR, вызывая отображение сообщения об ошибке. Обычно это происходит, когда программа безопасности считает, что файл архива содержит вредоносные агенты.
В этом случае решение состоит в том, чтобы временно отключить антивирусную программу, а затем извлечь файл. Однако продолжайте этот шаг, только если вы доверяете файлу архива. Если вы используете встроенный антивирус Windows, ознакомьтесь с нашим руководством по временному отключению безопасности Windows.
С другой стороны, если вы используете стороннюю программу безопасности, щелкните правой кнопкой мыши ее значок в области панели задач и выберите «Отключить» в контекстном меню. После успешного завершения извлечения файла снова включите программу безопасности.
Однако ваш антивирус может удалить извлеченные файлы, посчитав их угрозой для вашего компьютера. Чтобы этого не произошло, добавьте извлеченный файл в список исключений Windows Security. Если вы используете стороннюю антивирусную программу, ознакомьтесь с ее руководством пользователя, чтобы узнать, как добавлять файлы в список исключений.
3. Восстановите файл архива
Как упоминалось выше, основной причиной ошибки контрольной суммы WinRAR является повреждение файла архива. Один из способов справиться с этим — использовать встроенную функцию восстановления WinRAR для восстановления поврежденных файлов Windows. Функция восстановления ищет повреждения в файле архива и автоматически восстанавливает его, используя свой механизм восстановления.
Выполните следующие действия, чтобы восстановить файл архива:
Появится окно восстановления WinRAR, в котором будет предпринята попытка восстановить файл архива. После завершения процесса перезагрузите компьютер, попробуйте извлечь файл и проверьте, появляется ли ошибка снова. Если да, попробуйте следующее решение в списке.
4. Запустите сканирование CHKDSK
Другой основной причиной появления сообщения об ошибке могут быть поврежденные сектора на жестком диске. Для решения этой ситуации вы можете запустить сканирование CHKDSK.
CHKDSK, также известная как Check Disk, — это утилита, которая сканирует ваш жесткий диск на наличие поврежденных секторов, отсутствующих метаданных файлов и неправильных типов и размеров файлов. Если будут обнаружены какие-либо проблемы, он попытается исправить их автоматически.
Выполните следующие действия, чтобы запустить сканирование CHKDSK:

Сканирование CHKDSK занимает много времени, поэтому наберитесь терпения. После завершения сканирования перезагрузите компьютер (см., как перезагрузить компьютер с Windows) и проверьте наличие проблемы.
5. Перезагрузите файл архива
Если вы продолжаете сталкиваться с ошибкой при извлечении файла, вероятно, это связано с проблемой, возникшей в процессе загрузки файла. Возможно, вы были отключены от Интернета во время загрузки файла или на вашем компьютере внезапно отключилось электричество.
В этом случае лучше всего повторно загрузить файл архива. Если кто-то отправил вам файл по электронной почте, попросите его отправить его повторно. Если вы загрузили файл с веб-сайта, повторно посетите веб-сайт и запустите новую загрузку файла.
Если вы все еще сталкиваетесь с ошибкой контрольной суммы даже после выполнения предыдущих шагов по устранению неполадок, проблема, скорее всего, связана с WinRAR, а не с файлом архива. В таком сценарии у вас не остается другого выбора, кроме как использовать любой другой инструмент для извлечения файла из архива.
Исправление ошибки контрольной суммы WinRAR
WinRAR — популярный инструмент для сжатия и извлечения файлов. Хотя в целом он работает хорошо, бывают случаи, когда возникают проблемы, препятствующие успешному извлечению файлов.
Одной из таких проблем является ошибка контрольной суммы, возникающая при повреждении файла архива. К счастью, вы можете быстро устранить эту проблему, используя методы, упомянутые выше.
Как узнать контрольную сумму файла в Windows
При скачивании ISO образов и архивов больших размеров всегда есть вероятность получить «битый» файл. Во времена Dial-UP такое было сплошь и рядом. И хотя сейчас такое случается намного реже, чтобы убедиться, что перед вами «оригинальный» файл придумали контрольные суммы, которые вычисляются на основе содержимого и позволяют заметить несоответствие даже одного байта.
То есть, если вы измените один байт в проверяемом файле, то и контрольная сумма такого файла так же изменится.
Для чего нужны контрольные суммы
У контрольных сумм две задачи:
- Убедиться, что файл скачался корректно.
- Убедиться, что файл не был изменен злоумышленниками.
Зная контрольную сумму оригинала, можно проверить является ли ваша копия подлинной.
Как вычислить контрольную сумму он-лайн
Контрольную сумму можно проверить он-лайн. Но я не буду рекомендовать этот способ, так как если размер вашего файла несколько ГигаБайт, то это займет много времени и всегда есть вероятность ошибки при передаче файла. Кроме того делиться своими файлами со сторонними сервисами не правильно.
Как узнать контрольную сумму файла в Windows
Разумнее вычислить контрольную сумму локально на своем компьютере. Это быстро и конфиденциально. В этой статье я опишу несколько способов получения контрольных сумм, как с помощью сторонних программ, так и непосредственно с помощью самой операционной системы Виндовс.
Файловый менеджер Total Commander
Total Commander — это популярный файловый менеджер, работающий на платформах Microsoft Windows и Android. В нем есть встроенная функция вычисления контрольных сумм.

После чего вы можете выбрать один из алгоритмом вычисления контрольных сумм.

По-умолчанию Total Commander создает файл с именем проверяемого и с расширением по имени выбранного алгоритма расчета контрольной суммы.
Файловый архиватор 7-Zip
7-Zip — свободный, бесплатный файловый архиватор с высокой степенью сжатия данных. Он поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.
Этот архиватор имеет встроенную функцию вычисления контрольных сумм. Запустить ее можно прямо из контекстного меню Windows:

Если выбрать «звездочку», то программа подсчитает сразу несколько контрольных сумм:

Полученные данные можно выделить и скопировать в текстовый документ.
Как подсчитать контрольную сумму файла из консоли Windows
Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.
Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:
Вот пример ее работы через несколько минут:

Считаем контрольную сумму в PowerShell
PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.
Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:
Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.

По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.
Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:
- SHA1
- SHA256 (по умолчанию)
- SHA384
- SHA512
- MD5
Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:
Тогда результат работы будет выглядеть так:

Подробнее об использовании команды Get-FileHash можно прочитать на официальном сайте Microsoft — https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.utility/get-filehash
Какой алгоритм вычисления контрольных сумм самый правильный
MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.
MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.
Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.
Выводы
Если вы сомневаетесь в целостности скаченных файлов из интернета, особенно когда это касается оригинальных образов операционных систем, то проверьте их контрольную сумму. Сделать это можно как с помощью уже имеющихся у вас программ, так и воспользовавшись встроенными средствами операционной системы Windows.
Ошибка контрольной суммы в зашифрованном файле в WinRAR
Старые версии WinRAR при вводе неправильного пароля перед распаковкой зашифрованных архивов не предлагали пользователям ввести его заново, и начинали извлечение файлов. Само собой, процесс заканчивался с ошибкой контрольной суммы, из которой было не ясно в чем дело – в неверно введенном пароле или в повреждении самого архива.

В последней версии WinRAR такой проблемы нет – установите ее и попробуйте распаковать проблемный архив снова. Если теперь прежний пароль не подходит, и разархивация не начинается, значит с архивом все в порядке. Осталось только вспомнить правильный пароль.
Если же распаковка вновь заканчивается диагностическим сообщением об ошибке контрольной суммы, значит часть или все файлы в архиве уже повреждены или повреждаются в процессе извлечения и сохранения на диск.
Протестируйте оперативную память и жесткие диски компьютера на потерю байтов информации, попробуйте извлечь файлы на другой носитель (другой HDD или флешку).
Если с «железом» проблем не обнаружится, откройте WinRAR, выберите поврежденный архив и нажмите кнопку «Исправить» на верхней панели.