CRC32 C または C++ 実装 [closed] 質問する

CRC32 C または C++ 実装 [closed] 質問する

私は、CまたはC++でCRC32の実装を探しています。これは、無償またはパブリックドメインとして明示的にライセンスされています。実装ここ良さそうですが、ライセンスについては「ソース コード」としか書かれていません。これは不十分です。DLL をいじらなくて済むように、LGPL 以外の方がよいと思います (私のアプリはクローズド ソースです)。zlib の adler32 実装を見ましたが、小さなデータ チャンクをチェックしているので、adler は適していません。

ベストアンサー1

スニペット C ソースコード アーカイブがありますCRC32の実装自由に使えるもの:

/* Copyright (C) 1986 Gary S. Brown.  You may use this program, or
   code or tables extracted from it, as desired without restriction.*/

(残念ながら、c.snippets.orgは消滅してしまったようです。幸いにも、ウェイバックマシンアーカイブされています。

コードをコンパイルできるようにするには、ヘッダファイルとともにBYTE、符号なし8ビット整数とDWORD符号なし32ビット整数のtypedefを追加する必要があります。CRc.h のスニップタイプ.h

ヘッダー内の唯一の重要な項目はこのマクロです (CRC_32.c 自体に簡単に配置できます)。

#define UPDC32(octet, crc) (crc_32_tab[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8))

おすすめ記事