ハッシュジェネレーター
テキスト入力から暗号ハッシュ(MD5、SHA-1、SHA-256、SHA-512)を生成します。ファイルの整合性の検証、チェックサムの作成、テキストからの一意な識別子の生成に最適です。このツールは、さまざまなセキュリティ要件や互換性要件を満たすために、複数のハッシュアルゴリズムをサポートしています。
よくある質問
ハッシュとは、数学的アルゴリズムを用いて入力データから生成される固定サイズの英数字文字列のことである。ハッシュは、データの完全性の検証、パスワードの安全な保存、一意な識別子の作成、ファイルが改ざんされていないことの確認などに使われる。同じ入力から常に同じハッシュが生成されるが、プロセスを逆行させることは事実上不可能である。
最新のセキュリティ用途では、SHA-256またはSHA-512を使用する。MD5とSHA-1には既知の脆弱性があるため、チェックサムやレガシーシステムとの互換性など、セキュリティ以外の目的にのみ使用すべきである。パスワードの保存には、代わりにbcryptやArgon2のような特殊なアルゴリズムの使用を検討してください。
これらは異なるハッシュ・アルゴリズムで、セキュリティ・レベルと出力サイズが異なる。MD5は128ビットのハッシュを生成し、高速だが暗号的には壊れている。SHA-1は160ビットのハッシュを生成する。SHA-256は256ビット、SHA-512は512ビットのハッシュを生成する。一般に、長いハッシュの方がセキュリティは高いが、より多くのストレージを必要とする。
いや、暗号ハッシュは一方向性関数であり、不可逆であるように設計されている。ハッシュを数学的に逆引きして元の入力を得ることはできない。しかし、入力が一般的であったり予測可能であったりする場合は、レインボーテーブルや総当たり攻撃で見つけることができるかもしれません。これが、ハッシュの前にパスワードにソルトを加えることが重要な理由である。
ファイルをダウンロードし、プロバイダーが使用したのと同じアルゴリズム(通常はSHA-256)を使用してハッシュを生成する。生成したハッシュを、ファイル・ソースから提供されたハッシュと比較する。両者が完全に一致すれば、ファイルは無傷であり、破損や改ざんはされていない。ファイルに1ビットでも変更があれば、まったく異なるハッシュが生成されます。
ハッシュ化処理自体は安全であり、当社のサーバーにデータを送信することなく、完全にブラウザ内で実行されます。ハッシュ化された値は復号化できません。パスワードの保存には、常にソルティングのような追加のセキュリティ対策を使用し、特殊なパスワードハッシュ関数の使用を検討してください。
ソルティングは、ハッシュ化の前にパスワードにランダムなデータを追加し、同じパスワードでも毎回異なるハッシュが生成されるようにする。これにより、レインボーテーブル攻撃を防ぎ、一度に複数のパスワードをクラックすることが難しくなります。常にパスワードごとに一意のソルトを使用し、ハッシュと一緒にソルトを保存する。ソルトを自動的に処理するbcrypt、scrypt、Argon2を使用する。
MD5はセキュリティ上、暗号的に壊れているが、敵対的でないシナリオでの基本的なファイルの完全性チェック(ダウンロードが破損していないことの確認など)にはまだ使える。しかし、改ざんが懸念されるシナリオでは、代わりにSHA-256またはSHA-512を使用してください。攻撃者は、MD5ハッシュが一致する悪意のあるファイルを作成することができるからです。
暗号通貨は暗号ハッシュを広範囲に使用している:ビットコインはSHA-256を使用して、不変のブロックリンクを作成し、アドレスを生成し、プルーフ・オブ・ワークのマイニングを行っている。各ブロックは前のブロックのハッシュを含み、破れないチェーンを作る。改ざんがあればハッシュが変更され、後続のブロックはすべて無効になる。
ハッシュは一方通行で不可逆。ハッシュから元のデータを取り戻すことはできない。暗号化は双方向かつ可逆的で、暗号化されたデータは正しい鍵で復号化できる。パスワードの保存や完全性の検証にはハッシュを使い、後で読み取る必要のあるデータ(保存されたクレジットカードやプライベート・メッセージなど)の保護には暗号化を使う。
