ssecutils

🛡️ SRI Hash Generator

JS / CSS ファイルやテキストから Subresource Integrity ハッシュ(sha256 / sha384 / sha512)を生成し、integrity 属性付きのタグをそのまま出力します。計算はブラウザ標準の crypto.subtle で行われ、内容はサーバーに送信されません。

📂

ここに JS / CSS ファイルをドロップ

または

最大 20.0 MB ・ ファイルはアップロードされません

sha256
(未入力)
sha384推奨
(未入力)
sha512
(未入力)

integrity 属性付きタグ

ファイルまたはテキストを入力するとタグを生成します

💡 Subresource Integrity (SRI) について

  • 役割: integrity 属性を付けると、ブラウザはダウンロードしたファイルのハッシュが一致したときだけ実行・適用します。CDN 侵害やサプライチェーン攻撃で差し替えられたファイルをブロックできます。
  • crossorigin が必須: 別オリジン(CDN 等)から読み込む場合は crossorigin="anonymous" が必要です。これが無いと SRI チェックは行われません。
  • アルゴリズム: 仕様では sha384 が推奨です。複数を空白区切りで併記すると、ブラウザは対応する最も強いものを使います。
  • 1 バイトでも変われば不一致: ファイルを更新したらハッシュも再生成が必要です。バージョン固定(URL にバージョンを含める)と併用すると安全です。
  • プライバシー: 計算はブラウザ内で完結し、ファイル内容や入力テキストはサーバーへ送信されません。
使い方と解説

Subresource Integrity ハッシュを生成する

SRI Hash Generator は、JavaScript や CSS ファイル(またはテキスト)から Subresource Integrity 用のハッシュを生成するツールです。CDN や外部ホストから読み込むリソースに integrity 属性を付けることで、配信経路で改ざんされたファイルの実行をブラウザにブロックさせられます。

入力データの扱い

ハッシュ計算はcrypto.subtleを使ってブラウザ内で完結し、ファイル内容や入力テキストはサーバーへ送信されません。

CDNリソースの改ざんを防ぐ

scriptやlinkタグにintegrity属性を付けると、ブラウザはダウンロードしたファイルのハッシュが一致したときだけ実行・適用します。CDN侵害やサプライチェーン攻撃で差し替えられたファイルを止められます。別オリジンから読み込む場合はcrossorigin="anonymous"の付与も必要です。

どのハッシュを使うか

SRIはsha256 / sha384 / sha512に対応します。仕様ではsha384が推奨です。複数のハッシュを空白区切りで併記すると、ブラウザは対応する最も強いものを使います。ファイルを更新したらハッシュも再生成が必要です。

計算結果が正しいか検証する方法

SRIハッシュは通常のハッシュ値と違い、16進数ではなくBase64で表記します。実装が正しいか確かめたいときは、MDNのSRI解説で例として使われている alert('Hello, world.'); という1行を入れてみてください。sha384 で sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO という値になり、公式ドキュメントの記載と一致します。このツールの実装検証にもこの値を使いました。注意点として、改行やBOMが1バイトでも混ざると全く違うハッシュになります。ファイルをコピーして貼り付けると末尾に改行が入りがちなので、ハッシュが合わないときはまず不可視文字を疑ってください。ファイル入力を使えばこの問題は起きません。

SRI Hash Generator でできること

  • sha256 / sha384 / sha512 を生成
  • integrity属性付きタグを出力
  • ファイルもテキストもブラウザ内で処理
関連ツール

次に使うツール

作業の流れに近いツールへすぐ移動できます。

解説記事

このツールに関連する解説記事

すべての記事 →