Adler-32ハッシュジェネレーター
エラー検出のための超高速チェックサム関数
Adler-32は、1995年にMark Adlerによって設計されたチェックサム関数です。32ビットハッシュ(16進数8文字)を生成します。zlib圧縮ライブラリやrsyncプロトコルで広く使用され、CRC-32より大幅に高速になるよう設計されています。
Adler-32とは?
Adler-32は2つの合計を使用:A(全バイトの合計+1)とB(全A値の累積合計)。両方とも素数65521で剰余演算されます。最終ハッシュ:B × 65536 + A。
✅ Adler-32の利点
- • 超高速: ソフトウェアでCRC-32より大幅に高速
- • 低消費: 最小限のCPUとメモリ使用量
- • 簡単な実装: わずか数行のコードで実装可能
- • 実績のある本番利用: zlibで数十億のストリームを処理
📊 一般的な用途
- • zlib圧縮: ストリーム整合性検証
- • rsyncプロトコル: 高速ファイル変更検出
- • ネットワークチェック: 軽量パケット検証
- • データ転送: ストリームエラー検出
⚠️ セキュリティに関する注意
Adler-32は暗号学的ハッシュ関数ではありません。 エラー検出用のチェックサムであり、セキュリティ用ではありません。暗号学的な用途にはSHA-256を使用してください。
🔄 Adler-32の比較
🔵
Adler-32
32ビット、非暗号学的
最速、最小限の検出
🟢
CRC-32
32ビット、多項式
より遅いが検出力が高い
🟡
MD5
128ビット、暗号学的
はるかに高いセキュリティ
❓ よくある質問
Adler-32とCRC-32の違いは?
Adler-32は計算が速いですが、CRC-32より検出できるエラーの種類が少ないです。CRC-32はより多くのエラーパターンを捕捉する多項式除算を使用します。
Adler-32をセキュリティに使えますか?
いいえ。Adler-32はチェックサムであり、暗号学的ハッシュ関数ではありません。衝突は容易に生成できます。
zlibがCRC-32の代わりにAdler-32を使うのはなぜ?
zlibは速度を優先しています。圧縮データには通常、上位レベルのチェックがあります。