HTMLツール

無料 SRI ハッシュジェネレーター

SHA-256、SHA-384、SHA-512でスクリプト・スタイルシートファイルのSubresource Integrityハッシュを生成します。

ツールを読み込み中...

SRI ハッシュジェネレーターとは

Subresource Integrity(SRI)は、外部スクリプトやスタイルシートのコンテンツを検証するブラウザセキュリティ機能です。scriptタグやlinkタグにintegrity属性を追加し、ファイルの暗号化ハッシュを含めます。ブラウザはファイルを実行する前にハッシュを計算してintegrity値と比較します。ハッシュが一致しない場合(ファイルが変更、改ざん、または破損した場合)、ブラウザはそのリソースをブロックします。

クイックアンサー

Subresource Integrity(SRI)を使用して、改ざんされたCDNファイルからサイトを保護します。ファイルコンテンツの暗号化ハッシュを生成し、scriptタグまたはlinkタグにintegrity属性を追加して、crossorigin='anonymous'を含めます。実際のハッシュが一致しない場合、ブラウザはリソースをブロックします。

Last updated: 2026-05-28

制限事項

  • SRIは読み込み時にファイルコンテンツを検証するのみです。読み込まれたライブラリ自体の脆弱性(古いjQueryのバージョンでのXSSなど)は保護しません。ライブラリは常に最新に保ってください。
  • リモートファイルが変更されるたびにハッシュを再生成する必要があります。ライブラリ更新後にintegrity属性の更新を忘れると、リソースがブロックされてページが壊れる可能性があります。
  • SRIは異なるオリジンからの認証情報(クッキー、HTTP認証)を必要とするリソースでは機能しません。認証情報付きのクロスオリジンリクエストには、crossorigin='use-credentials'を使用してください。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. コードを直接貼り付けるか、ファイルをアップロードしてファイルコンテンツを提供します(貼り付けたコンテンツが優先されます)。
  2. ハッシュアルゴリズムを選択します。SHA-256が標準で、SHA-384とSHA-512も有効です。
  3. 生成されたintegrity属性と完全なscriptタグまたはlinkタグをHTMLにコピーします。

主な用途

  • jQuery、BootstrapなどのCDNホストスクリプトやサードパーティライブラリに整合性チェックを追加する。
  • ダウンロードしたライブラリファイルがプロダクションにデプロイする前に期待されるハッシュと一致することを確認する。
  • CDNとサブドメインをキャッシュに使用する場合に、セルフホストアセットのintegrity属性を生成する。

用途

使用例

CDNスクリプトタグの保護

サイトがCDNからユーティリティライブラリを読み込む場合、正確なファイルコンテンツからSRIハッシュを生成し、scriptタグにintegrity属性を追加してcrossorigin='anonymous'を含めます。CDNファイルが改ざんされた場合、ブラウザは実行を拒否します。

ダウンロードしたライブラリの検証

開発者がミニファイされたCSSフレームワークをダウンロードし、それが改ざんされていないことを確認したい場合、ファイルをアップロードしてSHA-384ハッシュを生成し、フレームワークの公式サイトに公開されているハッシュと比較します。

よくあるミス

  • 開発バージョンのファイルからハッシュを生成し、異なるプロダクションバージョンで使用するとハッシュが一致しません。
  • scriptタグやlinkタグにcrossorigin='anonymous'属性を付け忘れると、ブラウザがクロスオリジンリソースのハッシュを計算できません。
  • CDNライブラリをアップグレードした後にintegrityハッシュを更新しないと、古いハッシュが新しいファイルをブロックしてページが壊れます。

検証

  1. ブラウザDevToolsのNetworkタブで確認します。整合性ハッシュが一致するリソースは正常に読み込まれ、一致しないリソースは赤色でブロックされSRIエラーが表示されます。
  2. 生成されたハッシュを独立して検証します:openssl dgst -sha256 -binary file.js | openssl base64 -A を実行し、生成されたintegrity値と一致することを確認します。

FAQ

SRI ハッシュジェネレーターのFAQ

SRIを機能させるためにcrossorigin='anonymous'は必要ですか?

はい、リソースがページとは異なるオリジンから提供される場合は必要です。crossorigin='anonymous'がないと、ブラウザはクロスオリジンリソースのハッシュを計算できず、整合性チェックがスキップされます。同一オリジンのリソースの場合はcrossoriginは必須ではありませんが、含めても問題ありません。

SRIハッシュがファイルと一致しない場合はどうなりますか?

ブラウザはスクリプトの実行またはスタイルシートの適用を完全に拒否します。リソースはブロックされ、ブラウザコンソールにエラーが表示されます。これによりユーザーを改ざんされたCDNファイルから保護しますが、適切なハッシュ更新なしに正当なファイル更新が行われるとページが壊れることも意味します。

SRIにはどのハッシュアルゴリズムを使用すべきですか?

SHA-256が標準で最も広く使用されています。SHA-384とSHA-512も有効で、より強い衝突耐性を提供しますが、ハッシュ値が大きくなるとHTMLのバイト数が増加します。Web用途ではSHA-256で十分です。セキュリティはハッシュの長さではなく、整合性チェック自体に由来します。

動的に読み込まれるスクリプトにSRIは使用できますか?

SRIはHTML内の静的なscriptタグとlinkタグでのみ機能します。動的に読み込まれるスクリプト(import()やappendChild経由)の場合は、追加する前にscript要素のintegrityプロパティを設定できます。import()で読み込まれるモジュールスクリプトはSRIを直接サポートしていません。代わりにimport mapとintegrityを組み合わせて使用してください。

関連ツール

その他のhtmlツール

こちらもお試しください

こちらもお試しください