SHA-256 ハッシュ生成
テキストを入力するかファイルを選ぶとSHA-256ハッシュを表示します。HMACをオンにすると、WebhookやAPIの署名と同じように秘密鍵でメッセージに署名できます。
このツールを自分のサイトに埋め込む
コードをコピーしてページのHTMLに貼り付けてください。無料です。クレジットのリンクは残してください。
SHA-256が使われている場面
SHA-256は、NISTがFIPS 180-4で定めたSHA-2ファミリーの1つです。TLS証明書やHTTPSの安全性、ソフトウェアやGitコミットの署名(SHA-256リポジトリ)、パッケージマネージャーやDockerイメージのダイジェストによるファイル検証、ビットコインのブロックの連結などに使われています。
Webhookを検証するときは、受け取ったリクエストボディをそのまま、署名用シークレットでHMAC-SHA256にかけ、署名ヘッダーと比べます。JSONを一度パースして書き直すと空白が変わり、一致しなくなるので注意してください。
ハッシュの長さ
| アルゴリズム | ビット | 16進数の文字数 | 安全性 |
|---|---|---|---|
| MD5 | 128 | 32 | 危殆化(チェックサム用のみ) |
| SHA-1 | 160 | 40 | 危殆化(チェックサム用のみ) |
| SHA-256 | 256 | 64 | 安全 |
| SHA-384 | 384 | 96 | 安全 |
| SHA-512 | 512 | 128 | 安全 |
よくある質問
SHA-256のハッシュの長さは?
256ビットで、16進数なら64文字、Base64なら44文字です。入力が1文字でも4GBのファイルでも長さは同じです。
SHA-256とHMAC-SHA256の違いは?
SHA-256はデータだけから計算するので誰でも再計算できます。HMAC-SHA256は秘密鍵を混ぜて計算する(RFC 2104)ため、鍵を持つ人しか作成・検証できません。Stripe、GitHub、SlackのWebhookはこの方式で署名しています。
パスワードの保存にSHA-256を使ってもいい?
単体ではおすすめしません。高速に計算できるよう設計されているため、攻撃者が1秒間に何十億回も試せてしまいます。Argon2id、bcrypt、scryptなどのパスワード用ハッシュ関数を使ってください。
貼り付けた内容はサーバーに送られる?
送られません。このツールはJavaScriptとブラウザ内蔵のWeb Crypto APIだけで、すべて端末の中で動きます。入力・貼り付け・読み込んだ内容がアップロードや保存されることはありません。