Miklix

CRC-32C ハッシュコード計算機

出版された: 2025年2月17日 18:44:53 UTC
最終更新日 2026年1月12日 11:37:24 UTC

CRC-32C (巡回冗長検査 32 ビット、C バリアント) ハッシュ関数を使用して、テキスト入力またはファイルのアップロードに基づいてハッシュ コードを計算するハッシュ コード 計算機。

このページは、できるだけ多くの人がアクセスできるように、英語から機械翻訳されたものです。残念ながら、機械翻訳はまだ完全な技術ではないため、エラーが発生する可能性があります。もしよろしければ、こちらでオリジナルの英語版をご覧ください:

CRC-32C Hash Code Calculator

巡回冗長検査(CRC)は、生データへの偶発的な変更を検出するために一般的に使用されるエラー検出コードです。CRC-32は厳密には暗号ハッシュ関数ではありませんが、可変長の入力から固定サイズ(32ビット)の出力を生成できるため、ハッシュと呼ばれることがよくあります。このページで紹介されているバージョンはCRC-32Cバリアントで、より新しく「スマート」(エラー検出能力に優れている)なバージョンであり、最近のCPUではハードウェアアクセラレーション(SSE 4.2経由)で利用されることが多いです。

完全開示:このページで使われているハッシュ関数の特定の実装を書いたのは私ではない。これはPHPプログラミング言語に含まれる標準関数である。私は便宜上、ウェブ・インターフェースを作成し、ここで一般に利用できるようにしただけである。


新しいハッシュコードを計算する

このフォームを通じて送信されたデータまたはアップロードされたファイルは、要求されたハッシュコードを生成するのに必要な時間のみサーバーに保存されます。結果がお客様のブラウザに返される直前に削除されます。

入力データ:



提出されたテキストはUTF-8でエンコードされている。ハッシュ関数はバイナリデータを操作するため、テキストが別のエンコーディングであった場合とは結果が異なります。特定のエンコーディングのテキストのハッシュを計算する必要がある場合は、代わりにファイルをアップロードしてください。



CRC-32Cハッシュアルゴリズムについて

私は数学者ではありませんが、このハッシュ関数を簡単な例えで説明してみたいと思います。多くの暗号学的ハッシュ関数とは異なり、特に複雑なアルゴリズムではないので、おそらく大丈夫でしょう ;-)

手紙を郵送しようとしているのですが、受取人に届く前に破損してしまうのではないかと心配だとします。そこで、手紙の内容に基づいてCRC-32チェックサムを計算し、封筒に記入します。受取人が手紙を受け取ったら、同様にチェックサムを計算し、記入内容と一致するかどうかを確認します。一致すれば、手紙は途中で破損したり変更されたりしていないことになります。

CRC-32 がこれを行う方法は、次の 4 つのステップのプロセスです。

ステップ1:余分なスペース(パディング)を追加する

  • CRC は、メッセージの最後に少し余分なスペースを追加します (箱の中にピーナッツを詰めるのと同じように)。
  • これにより、エラーをより簡単に見つけることができます。

ステップ2:魔法の定規(多項式)

  • CRC-32 は、特別な「魔法の定規」を使用してデータを測定します。この定規は、凹凸のパターンのようなものだと考えてください (これは多項式ですが、その言葉については気にしないでください)。CRC-32 で最も一般的な「定規」は、固定パターンです。

ステップ3:定規をスライドさせる(割り算のプロセス)

  • ここで、CRC は定規をメッセージ上でスライドさせます。各スポットで、突起と溝が揃っているかどうかを確認します。揃っていない場合、CRC はメモを作成します (これは、スイッチのオン/オフを切り替えるのと同じように、単純な XOR を使用して行われます)。最後までスライドとスイッチの切り替えを続けます。

ステップ4: 最終結果(チェックサム)

  • メッセージ全体を定規でスライドすると、元のデータを表す小さな数字 (32 ビット長) が残ります。この数字は、メッセージの一意の指紋のようなものです。これが CRC-32 チェックサムです。

このページに表示されているバージョンは CRC-32C バリアントです。これは、特にハードウェア アクセラレーション (SSE 4.2 以降) を備えた CPU を使用しており、他のバリアントとの互換性が必要ない場合に推奨されるバリアントです。

他のバリエーション用の計算機も用意しています。

  • リンク
  • リンク

さらに読む

この投稿が気に入った場合は、次の提案も気に入るかもしれません:


BlueskyでシェアFacebookでシェアLinkedInでシェアTumblrでシェアXでシェアLinkedInでシェアPinterest にピン留めする

ミケル・クリステンセン

著者について

ミケル・クリステンセン
ミッケルはmiklix.comの開発者でありオーナーです。プロのコンピューター・プログラマー/ソフトウェア開発者として20年以上の経験を持ち、現在はヨーロッパの大手IT企業に常勤している。ブログを書いていないときは、さまざまな興味、趣味、活動に余暇を費やしている。