ハッシュ

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オブジェクトのアドレスを検査します。

入力結果
helloSHA-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を使用します;何もあなたのデバイスを離れません。