📝入力テキスト
文字列は UTF-8 でバイト列に変換してからハッシュ化します。同じ文字でも Shift_JIS でエンコードした場合は別の値になります。
MD5・SHA-1・SHA-256・SHA-384・SHA-512 を同時に計算
文字列は UTF-8 でバイト列に変換してからハッシュ化します。同じ文字でも Shift_JIS でエンコードした場合は別の値になります。
ハッシュ生成ツールは、文字列やファイルから MD5・SHA-1・SHA-256・SHA-384・SHA-512 のハッシュ値を計算するツールです。5種類を同時に表示するので、配布元がどのアルゴリズムを使っていても照合できます。
ハッシュ関数は、任意の長さのデータから決まった長さの値を作る一方向の関数です。同じ入力からは必ず同じ値が出る一方、値から元のデータを復元することはできません。この性質から、ダウンロードしたファイルが途中で壊れていないか、配布元のものと同一かを確かめる用途で広く使われています。
SHA系は Web Crypto API(crypto.subtle.digest)で計算しています。MD5 は Web Crypto がサポートしていないため、RFC 1321 に基づく実装をこのツール内に持っています。いずれの計算もブラウザ内で行われ、入力したデータが送信されることはありません。
どちらも、異なる2つのデータから同じハッシュ値を意図的に作り出す衝突攻撃が実証済みだからです。MD5は2004年以降、SHA-1も2017年に現実的な衝突が示されました。改ざんの検出や電子署名には使えません。ただし、通信エラーによる破損の確認や、既存システムとの互換のために計算する用途では今も使われています。新しく設計するならSHA-256以上を選んでください。
文字コードが異なる可能性が高いです。ハッシュ関数はバイト列に対して計算するため、同じ「あ」でもUTF-8とShift_JISではバイト列が違い、まったく別の値になります。このツールはUTF-8でエンコードしてから計算しています。また、末尾に改行が入っていないかも確認してください。
明確な上限は設けていませんが、ファイル全体をメモリに読み込んで計算するため、1GBを大きく超えるファイルではブラウザが応答しなくなることがあります。大きなファイルは、OS標準のコマンド(Windowsなら certutil、macOS/Linuxなら shasum)をお使いください。
ここで計算しているような単純なハッシュは、パスワードの保存には適していません。高速に計算できることが逆に不利に働き、総当たり攻撃を容易にしてしまうためです。パスワードの保存には、bcrypt・scrypt・Argon2 のように計算コストを意図的に高くした専用の関数と、利用者ごとに異なるソルトを使ってください。
ハッシュ関数の性質上、計算で元に戻すことはできません。ただし、よくある短い文字列については、あらかじめ計算した対応表(レインボーテーブル)で逆引きできてしまいます。「password」や「123456」のMD5値がすぐ判明するのはこのためです。
配布サイトに SHA-256 の値が載っている場合、その値をコピーしてこのツールの照合欄に貼り付け、ダウンロードしたファイルをドロップするだけで確認できます。値が一致すれば、通信途中で壊れておらず、配布されているものと同一です。ただしハッシュ値そのものが同じサイトに載っている以上、サイト自体が改ざんされていれば検出できません。厳密な検証が必要な場面ではGPG署名を使ってください。