ハッシュ
SHA-1、SHA-256、SHA-384、SHA-512ハッシュを生成します
MD5は提供されていません — 暗号的に破損しており、ブラウザのSubtleCrypto APIでは利用できません。SHA-256またはそれ以上を使用してください。
暗号学的ハッシュとは?
暗号学的ハッシュ関数は、任意の入力 — 単一の文字、5ページの文書 — を固定長の16進数文字列に変換します。SHA-256は常に64の16進文字を生成します。SHA-512は128です。2つの重要な特性:同じ入力は常に同じハッシュを生成し、同じハッシュを持つ2つの異なる入力を見つけることは計算上不可能です(衝突耐性)。
ハッシュはファイルの整合性チェック(ファイルをダウンロードしていますか?そのSHA-256を公開された値と比較)、パスワードの保存(サーバーはハッシュを保存し、パスワードは保存しません)、HMAC署名、およびコンテンツアドレスストレージ(Gitはコミットを識別するためにSHA-1を使用)に使用されます。
使用例
- ダウンロードの整合性を確認 — ダウンロードしたファイルのSHA-256を発行者のリストされたチェックサムと比較します。
- 重複コンテンツを検出 — 文字列やファイルの内容をハッシュして、元のデータを保存せずに重複を見つけます。
- キャッシュキーを構築 — 長い入力(URL、クエリ文字列、リクエストボディ)を固定長のキーに変換してRedisやMemcachedに使用します。
- Gitアーティファクトを監査 — SHA-1を計算して、Gitのプランビング外でblob/treeオブジェクトのアドレスを検査します。
例
| 入力 | 結果 |
|---|---|
| hello | SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| (empty string) | SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
よくある質問
なぜMD5はないのですか?
MD5は暗号的に破損しており — ノートパソコンで数秒で衝突を生成できます。ブラウザのSubtleCrypto APIは意図的にそれを公開していません。SHA-256またはそれ以上を使用してください。
ファイルをハッシュできますか?
このツールはテキスト入力をハッシュします。ファイルをハッシュするには、ブラウザのコンソールに次を入力してください:`crypto.subtle.digest('SHA-256', await file.arrayBuffer())`。
ハッシュは実行間で決定的ですか?
はい — 'hello'のSHA-256は常に同じ値です。ハッシュ関数は純粋です(ソルトなし、ランダム性なし)設計上。
SHA-1を使用すべきですか?
新しいアプリケーションには避けてください — 衝突攻撃に対して破損しています。SHA-1はファイルのチェックサムやGitでまだ一般的ですが、セキュリティに関連するものにはSHA-256を使用してください。
私の入力はどこかに送信されますか?
いいえ。ハッシュ化はブラウザのネイティブ暗号APIを使用します;何もあなたのデバイスを離れません。
