ハッシュジェネレーター

ダウンロードの検証、2つの文字列のバイト単位の比較、署名ワークフローのためのフィンガープリント作成は、いずれも暗号学的ハッシュに依存します。このツールは一般的なファミリー(MD5、SHA-1、SHA-2(256/384/512)、CRC32)を計算し、それぞれコピーできるダイジェストを表示します。入力したテキストはダイジェストの計算のために当サーバーに送信されます。

ハッシュを生成する方法

  1. 1

    入力を貼り付けまたは入力

    ハッシュ化したいテキストを入力します。このジェネレーターはテキストのみに対応しており、ファイルのアップロードはありません。

  2. 2

    ハッシュアルゴリズムを選ぶ

    用途に応じてMD5、SHA-1、SHA-256、SHA-384、SHA-512、CRC32を選びます。

  3. 3

    ハッシュを生成する

    「ハッシュを生成」をクリックします。選択したアルゴリズムのダイジェストが表示され、下の一覧にはすべてのアルゴリズムが一度に並びます。

  4. 4

    ダイジェストをコピー

    得られた固定長のダイジェストは、チェックサムファイル、署名ヘッダー、比較ダイアログに貼り付けられます。

どのハッシュアルゴリズムを選ぶべきか?

すべてのハッシュがすべての用途に適するわけではありません。MD5とSHA-1は一意性チェックには問題ありませんが、セキュリティ関連には壊れています。SHA-2は新規プロジェクトの堅実な既定であり続けています。

アルゴリズム早見表

アルゴリズム 出力サイズ セキュリティ状況 主な用途
MD5 128 ビット 破られている、2004年以降、実用的な衝突が可能 セキュリティ用途以外のチェックサム、ETag、キャッシュキー
SHA-1 160 ビット 非推奨、2017年のSHAttered衝突 旧来のGitオブジェクトID、古いTLSチェーン
SHA-256 256 ビット 安全、推奨される既定値 TLS、署名、ファイル整合性、ブロックチェーン
SHA-384 384 ビット 安全 TLS 1.3のSuite B、より強力な整合性
SHA-512 512 ビット 安全 非常に大きなデータセット、HMACの構築
CRC32 32 ビット 暗号学的ではない、衝突は容易 エラー検出(ZIP、PNG)、高速な整合性チェック

ハッシュは暗号化ではない

ハッシュは一方向です。ダイジェストから入力を復元することはできません。重要な性質は2つあります。

  • 衝突耐性、同じハッシュになる2つの入力が存在しないこと。MD5とSHA-1では破られています。
  • 原像耐性、ダイジェストが与えられても、それを生む入力を見つけられないこと。MD5とSHA-1でもまだ成り立つので、チェックサムは偶発的な破損を今も検出できます。

パスワードに素のSHA-256を使わないこと

パスワードには、遅くソルト付きの関数が必要です。bcryptscryptArgon2id、または少なくとも600,000回反復したPBKDF2です。SHA-256のような高速なハッシュは、最新のGPUで毎秒数十億回の推測で総当たりされ得ます。

テキストのエンコーディングが重要

文字列をハッシュ化するとは、そのバイト表現をハッシュ化することです。"café"をUTF-8で表すと、同じ語をLatin-1で符号化した場合と異なるダイジェストになります。このツールは既定でUTF-8のバイトをハッシュ化します。

よくある質問

ほぼ常にエンコーディングか末尾の空白の違いです。もう一方のツールがUTF-8かLatin-1のどちらを使っているか、ハッシュ化前に入力へ改行を付け足していないかを確認してください。

ダウンロードの偶発的な破損の検出になら、MD5で問題ありません。攻撃者が偽造しようとし得るもの(証明書、コード署名、パスワード保管)には、MD5は壊れており、使ってはいけません。

いいえ。このジェネレーターが処理するのはテキストのみです。ファイルを確認するには、OS標準のチェックサムコマンド(Linux・macOSではsha256sum、WindowsではGet-FileHash)を使ってください。

入力したテキストはダイジェストの計算のために当サーバーに送信されますが、計算後は保存されません。

SHA-2はアルゴリズムのファミリーで、SHA-224、SHA-256、SHA-384、SHA-512がそのメンバーです。サイズを指定せずに「SHA-2」と言う場合、たいていSHA-256を指します。

関連ツール

このツールは他の言語でも利用できます