• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

На заметку СRC32 на Си


virt

Просветленный
Просветленный
Регистрация
24.11.2016
Сообщения
706
Репутация
228
Привет всем.

Эту простенькую програмку раешил написать увидев тему на васме:

Вообще в линуксе есть уже встроенная программа в консоле, достаточно например ввести crc32 и будет подсчет котрольной суммы.

Решил сделать такую-же, дальше можно сделать что-угодно скриптами (сортировка и т.д.).

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

Алгоритм позволяет считать контрольную сумму по частям:

Например нужно посчитать 1Гиг данных, в данном алгоритме выделив буфер например 256Кб., можно потихоньку досчитывать контрольную сумму, сделал комментарии, смотрите исходник:crc_32_lib.cpp.

Может считать контрольную сумму как файла целиком, так и буфера памяти, как использовать:

Функция:

uint32_t crc32_file(const char* file_name)

Функция посчитает CRC32 файла, файл делится порциями по MAX_BUF_SIZE по умолчанию 8КБ, можно увеличить.

Входные параметры:

file_name - Имя файла.

Выходные параметры:

uint32_t CRC32

Функция:

uint32_t crc32_ram(uintptr_t addr, uint32_t size)

Входные параметры:

addr - Адрес буфера, которого нужно посчитать.

size - Размер буфера.

Выходные параметры:

uint32_t CRC32

Пример использования в исходном коде:crc32.cpp

В папке Release собранный проект CRC32.exe

Пример использования, команда:CRC32.exe <FILE_NAME>

Код на гите:

З.Ы. На васме пароль забыл, хотел там разместить.)))

А востановить немогу, а ну и пофиг.
 
Верх Низ