このツールについて
暗号学的ハッシュ関数は、任意のサイズの入力を固定長のダイジェストに決定的に対応させます。同じバイト列からは常に同じハッシュが生成され、1 文字の変更でもまったく異なる出力に波及します。このツールは、よく使われる 5 つのダイジェスト — MD5(128 ビット)、SHA-1(160 ビット)、そして SHA-2 ファミリーの SHA-256、SHA-384、SHA-512 — を並べて計算します。SHA 系の関数はブラウザのネイティブな Web Crypto API を通じて実行され、Web Crypto が意図的に省略している MD5 は RFC 1321 に準拠して JavaScript で実装されています。
公開されたチェックサムと照合してダウンロードを検証したり、2 つのファイルがバイト単位で同一であることを確認したり、キャッシュキーやコンテンツアドレス指定の識別子を生成したり、保存前にペイロードのフィンガープリントを取ったり、バックエンドが生成したハッシュがクライアントの見るものと一致するか確認したりするのに使えます。File モードに切り替えれば、ファイルをドラッグして任意のファイルをハッシュ化できます。バイト列は ArrayBuffer を介してローカルで読み取られ、アップロードされることはありません。
MD5 と SHA-1 はセキュリティ用途では破られており、衝突が実際に作成可能です。そのため、これらはチェックサムや整合性チェックにのみ使用し、パスワードや署名には決して使わないでください。そうした用途には SHA-256 以上を選びましょう。
よくある質問
MD5、SHA-1、SHA-256 の違いは何ですか?
これらは異なる長さのダイジェストを生成する異なるハッシュアルゴリズムです。MD5 は 128 ビット、SHA-1 は 160 ビット、SHA-256 は 256 ビットです。MD5 と SHA-1 は衝突を作り出せるため暗号学的に破られていると見なされており、一方 SHA-256(SHA-2 ファミリーの一部)は依然として安全と見なされています。
ハッシュ化は暗号化と同じですか?
いいえ。ハッシュ化は一方向の関数であり、ダイジェストから元の入力に戻すことはできません。一方、暗号化は正しい鍵があれば可逆です。ハッシュは整合性の検証やフィンガープリントに使われるものであり、データを秘匿しておくためのものではありません。
私のテキストやファイルはサーバーにアップロードされますか?
いいえ。すべてのハッシュ化は完全にブラウザ内で行われます。SHA ダイジェストはネイティブな Web Crypto API を使い、MD5 は JavaScript で実行され、ファイルは ArrayBuffer を介してローカルで読み取られます。ネットワーク越しに何かが送信されることは一切ありません。