SHA-256。 SHA-2 ファミリに属する 256 ビットの要約関数です。一般的な用途に推奨されます。
仕組み
ハッシュ関数は、任意のテキストやファイルを固定長のフィンガープリントに変換します。処理は一方向で、ハッシュから元の内容を復元することはできず、同じデータは常に同じ結果になります。
アルゴリズムを選び、テキストを入力するかファイルをアップロードすると、ハッシュがブラウザー内で即座に計算されます。結果は 16 進数または Base64 で表示できます。
一部のアルゴリズムは鍵を受け取ったり(HMAC)、salt と反復回数を使ってパスワードから鍵を導出したり(PBKDF2、Argon2id)します。これらはパスワードを安全に保存するために設計されています。
例
helloSHA-256 · 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824helloMD5 · 5d41402abc4b2a76b9719d911017c592helloSHA-1 · aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434dMD5 と SHA-1 は高速なチェックサムとして使えますが、安全ではありません。暗号用途では使わないでください。ユースケース
- ダウンロードしたファイルが破損・改変されていないことを、作者が公開したハッシュと比較して確認する。
- 2 つのテキストやファイルの間の変化を検出する。ハッシュが異なれば内容が異なります。
- コンテンツから安定した識別子を生成する。たとえばキャッシュや重複排除のために。
- HMAC を計算してメッセージに署名し、共有鍵でその完全性を検証する。
よくある質問
ハッシュを逆算して元のテキストを復元できますか?
いいえ。ハッシュ関数は設計上一方向です。存在するのは、既知の入力を試す総当たり攻撃や事前計算テーブルです。そのためパスワードは salt と反復回数で保護します。
どのアルゴリズムを使うべきですか?
一般的な完全性検証には SHA-256 が推奨される標準です。パスワードには Argon2id や、salt を用いた PBKDF2 などの鍵導出関数を使ってください。セキュリティ用途では MD5 と SHA-1 は避けてください。
MD5 と SHA-1 が安全でないとされるのはなぜですか?
実用的な衝突が知られており、同じハッシュを持つ 2 つの異なる入力を生成できます。チェックサムとしては今も有用ですが、署名やセキュリティには使えません。
ハッシュと HMAC の違いは何ですか?
単純なハッシュは内容だけに依存します。HMAC は内容を秘密鍵と組み合わせるため、鍵を知る人だけが結果を生成・検証できます。
入力したテキストやファイルはサーバーに送信されますか?
いいえ。計算はすべてブラウザー内でローカルに行われ、内容がデバイスから外に出ることはありません。
salt とは何で、何のためにありますか?
ハッシュを計算する前に入力に加えるランダムな値です。同じパスワードでも異なるハッシュになるようにし、事前計算テーブルを無効化します。