Miklix

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

出版された: 2025年2月17日 18:11:31 UTC

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

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

CRC-32 Hash Code Calculator

巡回冗長検査 (CRC) は、生データへの偶発的な変更を検出するためによく使用されるエラー検出コードです。技術的には暗号化ハッシュ関数ではありませんが、CRC-32 は可変長の入力から固定サイズの出力 (32 ビット) を生成できるため、ハッシュと呼ばれることがよくあります。

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


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

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

入力データ:



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



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

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

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

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

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

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

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

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

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

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

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

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

このページで紹介されているバージョンはオリジナルの CRC-32 関数であり、他のシステムとの互換性を最大限に高めるにはこの関数を使用する必要があります。

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

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

ミッケル・バン・クリステンセン

著者について

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