CRC-32C ハッシュコード計算機
出版された: 2025年2月17日 18:44:53 UTC
CRC-32C (巡回冗長検査 32 ビット、C バリアント) ハッシュ関数を使用して、テキスト入力またはファイルのアップロードに基づいてハッシュ コードを計算するハッシュ コード計算機。CRC-32C Hash Code Calculator
巡回冗長検査 (CRC) は、生データへの偶発的な変更を検出するためによく使用されるエラー検出コードです。技術的には暗号化ハッシュ関数ではありませんが、CRC-32 は可変長の入力から固定サイズの出力 (32 ビット) を生成できるため、ハッシュと呼ばれることがよくあります。このページで紹介されているバージョンは CRC-32C バリアントで、これは新しい「スマートな」(エラー検出が優れている) バージョンであり、最新の CPU (SSE 4.2 経由) でハードウェア アクセラレーションされることがよくあります。
完全開示:このページで使われているハッシュ関数の特定の実装を書いたのは私ではない。これはPHPプログラミング言語に含まれる標準関数である。私は便宜上、ウェブ・インターフェースを作成し、ここで一般に利用できるようにしただけである。
CRC-32Cハッシュアルゴリズムについて
私は数学者ではありませんが、このハッシュ関数を簡単な例えで説明してみたいと思います。多くの暗号ハッシュ関数とは異なり、特に複雑なアルゴリズムではないので、おそらく大丈夫でしょう ;-)
郵便で手紙を送るつもりだが、受取人に届く前に手紙が破損してしまうのではないかと心配しているとします。手紙の内容に基づいて CRC-32 チェックサムを計算し、それを封筒に書き込みます。受取人が手紙を受け取ったら、チェックサムを計算して、あなたが書いた内容と一致するかどうかを確認します。一致すれば、手紙は途中で破損したり変更されたりしていないことになります。
CRC-32 がこれを行う方法は、次の 4 つのステップのプロセスです。
ステップ1: 余分なスペース(パディング)を追加する
- CRC は、メッセージの最後に少し余分なスペースを追加します (箱にピーナッツを詰めるのと同じように)。
- これにより、エラーをより簡単に見つけることができます。
ステップ 2: 魔法の定規 (多項式)
- CRC-32 は特別な「魔法の定規」を使用してデータを測定します。
- この定規を凹凸のパターンのように考えてください (これは多項式ですが、その言葉については気にしないでください)。
- CRC-32 の最も一般的な「定規」は固定パターンです。
ステップ3:定規をスライドさせる(割り算のプロセス)
- ここで、CRC はメッセージ上で定規をスライドさせます。
- 各スポットで、凹凸と溝が揃っているかどうかを確認します。
- 一致しない場合は、CRC がメモを作成します (これは、スイッチのオン/オフを切り替えるような単純な XOR を使用して行われます)。
- 最後までスライドとスイッチの切り替えを続けます。
ステップ 4: 最終結果 (チェックサム)
- メッセージ全体を定規でスライドすると、元のデータを表す小さな数字 (32 ビット長) が残ります。
- この番号は、メッセージの固有の指紋のようなものです。
- これは CRC-32 チェックサムです。
このページで紹介されているバージョンは CRC-32C バリアントです。これは、特にハードウェア アクセラレーションされた CPU (SSE 4.2 以降) を使用しており、他のバリアントとの互換性が必要ない場合に推奨されるバリアントです。
他のバリエーション用の計算機も用意しています: