ハッシュジェネレーター(MD5 / SHA)
暗号学的ハッシュを生成します:MD5、SHA-1、SHA-256、SHA-384、SHA-512。Web Crypto APIを使ってブラウザ内で実行されます。
暗号学的ハッシュとは何か、そしてどんなときに必要か?
暗号学的ハッシュ関数とは、任意の入力(数バイト、数ギガバイトのファイル、あるいは英語版Wikipedia全体)を、「ダイジェスト」または「ハッシュ」と呼ばれる固定長の出力に変換する決定論的なアルゴリズムです。SHA-256は256ビット(16進数64文字)を生成し、SHA-512は512ビットを生成し、MD5は128ビットを生成します。非暗号学的なもの(CRC32など)に対して、暗号学的なハッシュを定義する4つの性質があります。決定性(同じ入力→常に同じハッシュ)、雪崩効果(1ビットを変えるだけで出力ビットの約半分が変わる)、原像計算困難性(ハッシュを逆算して入力を復元できない)、そして衝突困難性(同じハッシュを生成する2つの入力を見つけられない)です。ハッシュ関数が破られるとき、通常はこの後者の2つの性質が崩れます。MD5(2004年)とSHA-1(2017年)に対する衝突攻撃は、これらをセキュリティ目的には不適切なものにしましたが、ファイルのチェックサムのような、敵対者のいない整合性チェックには依然として役立ちます。新しいセキュリティ関連の作業にはSHA-256またはSHA-512を使ってください。このツールはブラウザのWeb Crypto API(crypto.subtle.digest)を使用し、最新のデバイスではハードウェアアクセラレーションが効きます。そしてOpenSSL、Pythonのhashlibモジュール、Nodeのcryptoモジュールとバイト単位で同一の出力を生成します。
よくある活用例
ダウンロードしたファイルが、発行元の公開したSHA-256と一致するか検証する(LinuxのISO、セキュリティツールのリリースなど)。
キャッシュキー用のコンテンツアドレス可能な識別子を生成する(コンテンツのハッシュ→安定したURL)。
ファイル保存用の重複排除キーを作成する(同じハッシュ=同一ファイル)。
Webhook署名の検証を実装する:共有シークレットを用いたペイロードのHMAC-SHA256。
Gitスタイルのコンテンツハッシュ(ツリー/blob識別子用のSHA-1)を生成する。
キーとなる列のハッシュを計算して保存することで、データベース行の整合性を検証する。
よくある質問
なぜMD5はセキュリティ用途では非推奨なのですか?▼
ハッシュは逆算できますか?▼
SHA-256とHMAC-SHA256の違いは何ですか?▼
SHA-256ではなくSHA-512を使うべきなのはどんなときですか?▼
なぜ私のSHAハッシュは他のツールのものと異なるのですか?▼
機密データに使っても安全ですか?▼
関連ツール
JWTデコーダー
JSON Web Token(JWT)を瞬時にデコードします。お使いのブラウザ内で実行されるため、トークンがデバイスの外に出ることはなく、本番環境のシークレットでも安全に利用できます。
JSONフォーマッター&バリデーター
JSONをオンラインで整形、検証、minify(圧縮)します。すべてお使いのブラウザ内で動作するため、データがデバイスから外に出ることはありません。
XMLフォーマッター
XMLドキュメントを整形して読みやすくします。SOAP、サイトマップ、RSSフィード、設定ファイルに役立ちます。
Base64エンコーダー&デコーダー
文字列をBase64にエンコードしたり、Base64をテキストにデコードしたりします。あなたのプライバシーを尊重し、すべてブラウザ内で実行されます。
URLエンコーダー&デコーダー
テキストをURLセーフなエンコード(パーセントエンコーディング)に変換したり、その逆を行ったりします。クエリ文字列、リダイレクト、OAuthフローに役立ちます。
HTMLエンティティエンコーダー&デコーダー
特殊文字をHTMLエンティティ(&、<など)に変換したり、その逆を行ったりします。テキストを安全にHTMLへ埋め込むのに役立ちます。