# SRI ハッシュ生成

JS や CSS のファイルをドロップすると、integrity 属性に入れる値（sha384-…）と、そのまま使える script・link タグを作ります。既にある integrity 値をファイルと照合して一致するかも確かめられます。

- URL: https://tools.itlibra.com/ja/sri-generator
- 端末内で処理・アップロードなし
- 最終更新: 2026-10-26

## 使い方

1. JS や CSS のファイルを左のドロップ欄に入れます。テキストを直接貼り付けることもできます（「テキストからハッシュを作る」）。
2. ハッシュの種類（既定は sha384）を選びます。sha256・sha512 の値も同時に計算されます。
3. src 欄に、そのファイルを配信する URL またはパスを入れると、タグの src が書き換わります。
4. 表示された integrity 値とタグをコピーし、script または link に付けます。
5. 既にある integrity 属性を「照合」欄に貼ると、ファイルと一致するかを表示します。

## こんなときに

- CDN から読み込む jQuery やライブラリの \<script\> に integrity を付けたい
- 自サイトの CSS を変更したあと、\<link\> の integrity 値を作り直したい
- 配布元が書いた integrity 値と、ダウンロードしたファイルが一致するか確かめたい
- 改ざんされていないことを確かめたうえで、外部のスクリプトを読み込ませたい

## できること

### sha256・sha384・sha512 に対応

3 つのアルゴリズムの値を 1 回の読み込みで同時に計算します。既定は sha384 です。

### タグをそのまま出力

script と link のタグを、integrity と crossorigin="anonymous" 付きで作ります。src の値は入力欄で書き換えられ、引用符や \< \> は文字として扱われます。

### 既存の integrity を照合

ハッシュを複数並べた値も読み取ります。複数あるときは W3C SRI の規則どおり、最も強いアルゴリズムの値だけで判定します。

### 改行コードの違いを表示

貼り付けたテキストは UTF-8 のバイトとして計算し、LF と CRLF のどちらかを表示します。改行が変わるとハッシュも変わります。


## 対応形式

### 入力

- ファイル（.js・.css・その他すべて。1 ファイル 100 MB まで）
- 貼り付けたテキスト（10 MB まで）

### 出力

- integrity 値（sha256・sha384・sha512）
- script・link の HTML タグ


## 対応状況

| 機能 | 対応 | 補足 |
| --- | --- | --- |
| ファイルと貼り付けテキストから integrity 値を作る | 対応 | — |
| script・link タグの出力（crossorigin 付き） | 対応 | — |
| 既存の integrity 属性との照合（複数ハッシュ対応） | 対応 | — |
| URL を入力して配信中のファイルを取得して計算 | 非対応 | ファイルを手元に保存して入れてください |
| 配信中のページの integrity 属性を読み取って検査 | 非対応 | HTML の属性は貼り付けた値だけを照合します |
| SRI が規定していないアルゴリズム（md5・sha1 など） | 非対応 | — |

## 制限・注意事項

- 外部の URL からは取得しません。配信されているものと同じファイルを保存して、そのファイルから作ってください。
- ファイルは 1 つ 100 MB まで、貼り付けテキストは 10 MB までです。
- CDN や配信設定が圧縮・改行の変更を行うと、ハッシュは変わります。配信先のファイルで作り直してください。
- crossorigin 属性が無い他のオリジンのファイルは、integrity があるとブラウザが取得をブロックします。

## プライバシーと安全性

ファイルと貼り付けたテキストは、お使いのブラウザの中だけで処理されます。サーバーへ送信・保存されることはありません。

## よくある質問

### integrity 属性には sha256・sha384・sha512 のどれを使えばいいですか？

W3C の SRI 仕様はどれも使えると定めています。このツールの既定は sha384 です。複数を並べると、ブラウザは最も強いものだけで判定します。

### CDN のファイルのハッシュを、そのままこのツールで作れますか？

URL からは取得しないので、ブラウザで開いて保存したファイルを入れてください。CDN が配信する内容と同じバイト列であれば、同じ値になります。

### 改行コードを変えるとハッシュは変わりますか？

はい。LF と CRLF は別のバイトなので、別のハッシュになります。貼り付けたテキストは、表示された改行のままのバイト列で計算されます。

### crossorigin="anonymous" は必要ですか？

他のオリジン（CDN など）のファイルに integrity を付けるときは必要です。無いと、ブラウザはそのファイルの取得をブロックします。

### 照合で「不一致」になった理由は？

ファイルが違う（改行や圧縮が違う・別バージョン）か、貼り付けた値が古い可能性があります。配信されている実物から作り直して比べてください。
