Список разделов: Статьи по дате:
27.12.2017 | Главная > Алгоритмы > Алгоритм подсчёта контрольных сумм CRC32 > Комментарии

Алгоритм подсчёта контрольных сумм CRC32

Данный алгоритм представляет собой подсчет контрольной суммы блока данных, используя для инициализации стандартный полином 0xEDB88320. Этот алгоритм широко применяется для подсчета контрольных сумм файлов. Исходный текст класса, обеспечивающего подсчет контрольной суммы по алгоритму CRC32 для блока данных в памяти приведен ниже. Вы можете скачать проект на Visual C++ 7, который реализует консольное приложение, применяющее алгоритм к файлам.

Работа с алгоритмом производится следующим образом. Сначала создается объект класса crc32. Затем с помощью вызова функции ProcessCRC подсчитывают контрольную сумму буфера с данными. Если все данные не поместились в один буфер, crc считают в несколько заходов, каждый раз вызывая функцию ProcessCRC для очередного блока данных. Длина блока данных указывается в байтах. После подсчета всех данных в поле m_crc32 содержится контрольная сумма.

Читать статью...   Написать комментарий...


Комментарии к статье

dima
4.04.2012 10:35:22

Спасибо

Артем
7.02.2014 09:49:40

Спасибо

Sergey
29.11.2014 12:27:21

Огромное спасибо! Добавил код конвертирования результата в шестнадцатиричный формат и протестил время работы данного алгоритма. Результаты вычислений сравнивал с результатами, полученными при помощи HashTab v4.0.0. Хеш-суммы совпадают. У меня на компе при просчёте файла в 10 ГБ алгоритм, предложенный Павлом работает быстрее на 4 сек (1 мин. 30 сек, против 1 мин. 26 сек., правда HashTab просчитывает ещё MD5 и SHA-1). Скорее всего на моём компе время просчёта определяться скоростью чтения с диска...

суслик
14.05.2016 12:28:16

Подопытный файл 6 гигов, результаты:

1) экзешник, который в архиве 4м. 46с.,
2) тот же код, заточенный под mingw 4м. 10с.,
3) HashTab v5.1.0.23 2м. 16с.

Такие дела.

Павел
25.01.2017 22:07:42

Буфер считывания файла нужно делать побольше. Тогда будет читать быстрее с диска.

ElvaYxk
27.12.2017 02:31:35

апрапрапр

Добавить комментарий

Ваше имя*:
Ваш e-mail:
Комментарий*:
Уведомлять о новых сообщениях по e-mail
Введите цифры*:
Картинка с цифрами

(С) Copyright 2005-2016. На данном сайте содержится авторский материал, принадлежащий Двуреченскому Павлу. Перепечатка данного материала возможна только со ссылкой на www.paveldvlip.ru и указанием имени автора.