メインコンテンツへスキップ
Tooletto

ハッシュジェネレーター

テキストからMD5、SHA-1、SHA-256、SHA-384、SHA-512のハッシュを生成します。各アルゴリズムが同時に計算され、ブラウザネイティブの暗号機能を使うため何も送信されません。

  • ファイルは端末の外に出ません
  • 無料、登録不要
  • 透かしなし
  • 一度読み込めばオフラインでも動作します
Loading tool…

ハッシュジェネレーターの使い方

  1. 1

    テキストを入力

    何でも入力または貼り付けます — 入力中にハッシュが更新されます。

  2. 2

    結果を読む

    MD5、SHA-1、SHA-256、SHA-384、SHA-512がすべて一緒に表示されます。

  3. 3

    コピー

    クリック1つでどのハッシュもクリップボードにコピーします。

ハッシュが実際に保証すること

暗号学的ハッシュ関数は、任意サイズの入力を受け取り、固定長の出力 — SHA-256なら256ビット、入力が1文字でもギガバイトでも変わりません — を生成し、それを有用にする2つの性質を持ちます: 同じ入力は常にまったく同じ出力を生成し、入力のたった1ビットの変化でも、わずかに異なる出力ではなく完全に異なる予測不能な出力を生成します。これがハッシュを検証に有用にするものです: 2つのハッシュを比較すれば、データ自体をバイト単位で比較する必要なく、2つのデータが同一かどうかを圧倒的な確信を持って知ることができます。

ハッシュ関数が明示的に行わないのは、元に戻せる形でデータを圧縮したり表現したりすることです — 設計上一方向の関数です。SHA-256の出力を受け取って元の入力を再構築する操作は存在せず、これはBase64のように自明に可逆なエンコーディング方式とは根本的に異なります。

MD5とSHA-1が破られているにもかかわらず存続している理由

暗号学的ハッシュが「破られている」と見なされるのは、具体的には誰かが同じ出力を生成する2つの異なる入力 — 衝突 — をブルートフォースが予測するよりも速く見つける方法を実証したときです。MD5に対する実用的な衝突攻撃は2004年から存在し、SHA-1に対する本物の実用的な衝突は2017年に実証されました。そのため、どちらもデジタル署名や証明書の検証など、攻撃者が意図的に一致するデータを偽造しようとする可能性がある場所では信頼すべきではありません。

それでも、より限定的で非敵対的な目的では広く使われ続けています: ダウンロードされたファイルが公開者が挙げたチェックサムと一致するかを確認したり、転送中の偶発的な破損を検出したりする用途です。そのシナリオでは誰も意図的に衝突するファイルを構築しようとしていないため、両アルゴリズムとも偶発的な違いの検出には完全に信頼できます — 脆弱性は具体的に意図的で設計された衝突についてのものであり、日常的な整合性検証についてではありません。

生のハッシュがパスワードには間違ったツールである理由

SHA-256とその仲間は意図的に高速です — その速度はダウンロードの検証には特徴であり、チェックサムを瞬時に計算したい場合には良いことですが、パスワードの保存には深刻な脆弱性です。そこでは速度こそまさに攻撃者が望むものだからです。最新の民生用ハードウェアは1秒間に数十億のSHA-256ハッシュを計算でき、これは生のSHA-256パスワードハッシュの盗まれたデータベースが、膨大な速度でブルートフォースされたり事前計算済みテーブルと照合されたりしうることを意味します。bcrypt、scrypt、Argon2のようなパスワードハッシュ専用に設計されたアルゴリズムは、意図的に遅く、試行ごとに計算コストが高くなっています。まさにその同じブルートフォース攻撃を、それに専念する計算力がかなりあっても実用不可能なほど遅くするために設計されており、これは汎用のチェックサム関数とは根本的に異なる設計目標です。

よくある質問

MD5を使っても安全ですか?

セキュリティに関わることには一切安全ではありません。MD5に対する実用的な衝突攻撃は2004年から存在し、SHA-1は2017年から破られています。どちらも敵対的ではないチェック — ダウンロードが公表されたチェックサムと一致するかの確認や偶発的な破損の検出 — には引き続き有用です。攻撃者が関与しうる場合は常にSHA-256以上を使ってください。

ハッシュを元のテキストに戻せますか?

いいえ — ハッシュ化は設計上一方向です。しかし短いまたは一般的な入力は、事前計算されたレインボーテーブルやブルートフォースで見つけられる可能性があります。そのため、パスワードは生のSHAではなく、bcryptやArgon2のような遅くてソルト付きのアルゴリズムでハッシュ化する必要があります。

これでパスワードをハッシュ化すべきですか?

いいえ。パスワードの保存には、ユーザーごとのソルトを持つ意図的に遅いアルゴリズム — bcrypt、scrypt、Argon2 — が必要です。生のSHA-256は速すぎます: 最新のハードウェアは1秒間に数十億回の試行を行えます。

入力はどこかに送信されますか?

いいえ。SHAハッシュはブラウザ内蔵のWeb Crypto APIを使い、MD5はこのページ上のJavaScriptで実行されます。何も送信されないため、ツールはオフラインでも動作し続けます。

なぜ同じテキストが別の場所で違うハッシュになるのですか?

ほぼ常に末尾の改行や文字エンコーディングの違いが原因です。このツールは入力のバイトを正確にUTF-8としてハッシュ化します — `echo`のようなコマンドラインツールは`-n`を渡さない限り改行を追加します。

ハッシュジェネレーターのよくある使い方