Hash
ハッシュ生成ツール
MD5、SHA-1、SHA-256、SHA-512 のハッシュを生成します。
ハッシュについて
ハッシュ関数は任意の入力を受け取り、固定長のフィンガープリントを生成します。同じ入力は常に同じハッシュを生成しますが、ハッシュから元のデータに戻すことはできず、入力の 1 文字を変えるだけで出力は完全に変わります。
テキストのハッシュは文字そのものではなく、正確なバイト列に依存します。同じ文字列でも UTF-8 と UTF-16 でエンコードすれば、人が読めば同じテキストに見えても、まったく異なる 2 つのハッシュが生成されます。ファイルのハッシュツールが「テキスト」ではなく生のバイト列を扱うのはこのためで、そこには解決すべき曖昧さがありません。ここに貼り付けたテキストをハッシュする際は、まず UTF-8 としてエンコードされます。これはあなたが比較するほぼすべてのチェックサムが前提としているものでもありますが、その前提が存在することは知っておく価値があります。
使われる場面
- ダウンロードしたファイルが配布元のチェックサムと一致するか確認する
- 全内容を比較せずに 2 つのファイルが同一か比較する
- キャッシュバスティング用のキーやコンテンツアドレス可能な識別子を生成する
- 転送やバックアップ後のデータ整合性を確認する
よくある質問
MD5 や SHA-1 はパスワードに安全ですか?
いいえ。どちらもセキュリティ用途としては破られています。代わりに bcrypt や Argon2 などの専用パスワードハッシュアルゴリズムを使用してください。これらは汎用ハッシュであり、パスワード用ハッシュではありません。
どのアルゴリズムを使うべきですか?
整合性チェックには SHA-256 または SHA-512 が現在の標準です。MD5 と SHA-1 は従来のチェックサム検証で今も使われていますが、セキュリティ目的では信頼すべきではありません。
アップロードしたファイルは保存されますか?
いいえ。ファイルはその 1 回のリクエストのためだけにサーバー上でハッシュ化され、その後破棄されます。
同じテキストをハッシュしたのに、他の場所と結果が違うのはなぜですか?
最もよくある原因は文字エンコーディングです。見た目が同じテキストでも、UTF-8、UTF-16、あるいは別のエンコーディングかによって異なるバイト列になり、結果としてハッシュも変わります。末尾の空白や、行末の慣習の違い(\n か \r\n か)も見えないところでバイト列を変えてしまいます。このツールは貼り付けたテキストを UTF-8 としてハッシュします。比較対象の値が別のエンコーディングから来ている場合、不一致はバグではなく想定どおりの結果です。