информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Контроль за целостностью файла или CRC 16.08.02 06:20  Число просмотров: 1075
Автор: VisUAll Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Можно использовать CRC32
Алгоритм страрый и надежный (MD5 для такого случая крутоват)


#define CRC32_POLYNOMIAL 0xedb88320L
unsigned long CRCTable[256];

InitCRC32( )
{
unsigned long crc;
for ( int i = 0; i <= 255; i++) {
crc=i;
for ( int j = 8; j > 0; j--) {
if ( crc & 1 )
crc = ( crc >> 1 ) ^ CRC32_POLYNOMIAL;
else
crc >>= 1;
}
CRCTable[ i ] = crc;
}
}

unsigned long CalcBufferCRC( int count, unsigned long crc, unsigned char* buffer )
{
unsigned long temp1;
unsigned long temp2;

while( count-- != 0 ) {
temp1 = ( crc >> 8 ) & 0x00FFFFFFL;
temp2 = CRCTable [ ( ( int ) crc ^ *buffer++ ) & 0xff ];
crc = temp1 ^ temp2;
}
return ( crc );
}

Сначала вызываешь InitCRC32, а потом спокойно считываешь файл кусками и считаешь для них CRC. CRC для каждого куска складываешь и все :)
Думаю так можно сделать.

<programming>
[C++] Контроль за целостностью файла или CRC 16.08.02 02:45  
Автор: Yuri Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ссоздаются полутекстровые файлы размером около 1Mb и мне необходимо проверить при повторной загрузке этого файла в программу остался он такой как был при создании или ее кто-то уже подредактировал вручную... Краем уха слышал про CRC контроьную сумму файла. Но незнаю как она считается и подойдет ли такой способ для моего случая?
Подскажите как можно решить мою проблему.
Заранее благодарен.
[C++] Контроль за целостностью файла или CRC 16.08.02 06:20  
Автор: VisUAll Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Можно использовать CRC32
Алгоритм страрый и надежный (MD5 для такого случая крутоват)


#define CRC32_POLYNOMIAL 0xedb88320L
unsigned long CRCTable[256];

InitCRC32( )
{
unsigned long crc;
for ( int i = 0; i <= 255; i++) {
crc=i;
for ( int j = 8; j > 0; j--) {
if ( crc & 1 )
crc = ( crc >> 1 ) ^ CRC32_POLYNOMIAL;
else
crc >>= 1;
}
CRCTable[ i ] = crc;
}
}

unsigned long CalcBufferCRC( int count, unsigned long crc, unsigned char* buffer )
{
unsigned long temp1;
unsigned long temp2;

while( count-- != 0 ) {
temp1 = ( crc >> 8 ) & 0x00FFFFFFL;
temp2 = CRCTable [ ( ( int ) crc ^ *buffer++ ) & 0xff ];
crc = temp1 ^ temp2;
}
return ( crc );
}

Сначала вызываешь InitCRC32, а потом спокойно считываешь файл кусками и считаешь для них CRC. CRC для каждого куска складываешь и все :)
Думаю так можно сделать.

1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach