プロが教える店舗&オフィスのセキュリティ対策術

VC6でCRC64・CRC128が出来るソースを探しています。
CRC自体がよくわかっていないので、実際に動作させて理解しようとネットでソースを見つけようとしていますが、うまくコンパイルできるものが見つかりませんでした。

通常はCRCに1バイトをわたすもの?が多いのですが、できましたら文字列(長さは可変長)も扱える高速な関数を探しています。

よろしくお願いいたします。

A 回答 (1件)

★『CRC32』の精度では駄目なのですか?


・下に 32 ビットですが CRC32 のコードを載せておきます。今後の参考にして下さい。

サンプル:
DWORD GetCRC32( LPCTSTR lpString )
{
 DWORD dwCode = 0xFFFFFFFF;
 int no;
 
 while ( *lpString != '\0' ){
  for ( dwCode ^= (((DWORD)*lpString) << (32 - 8)), no = 0 ; no < 8 ; no++ ){
   if ( dwCode & 0x80000000 ){
    dwCode = ((dwCode << 1) ^ 0x04C11DB7);
   }
   else{
    dwCode <<= 1;
   }
  }
  dwCode = (~dwCode & 0xFFFFFFFF);
 }
 return( dwCode );
}

最後に:
http://apollo.backplane.com/matt/crc64.html→『18.2 million dataset CRC-64 test & Program source』
http://www.efg2.com/Lab/Mathematics/CRC.htm→『efg's Mathematics Projects -- CRC Calculator』
・上記のリンクを参考文献としてお使い下さい。
・以上。おわり。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。100から150バイトの文字列を正確に送りたいために、どうしても64ビットのCRCが必要です。
CRC32ならソースを見つけることができましたがCRC64はなかなか見つけることができませんでした。

本当にCRC64で大丈夫(実はCRC128もしくはCRC32)かはわかりませんが、探しています。

crc64(文字列)で CRC64の値が取得できる関数を探しています。
アセンブラなら高速なので、アセンブラでも構いません。

こういう関係の本も探しています。

お礼日時:2007/02/11 00:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!