SRI ハッシュ ジェネレーター
任意の JS または CSS ファイルのサブリソース整合性ハッシュを生成し、すぐに貼り付けられるスクリプトまたはリンク タグを取得します。
結果
サブリソース整合性 (SRI) を使用すると、CDN またはサードパーティ ホストから取得したスクリプトまたはスタイルシートが実行前に変更されていないことをブラウザーで検証できます。ブラウザーはダウンロードされたバイトをハッシュし、ダイジェストが公開された整合性属性と一致しない場合はファイルの実行を拒否します。このツールは、ドロップインした JS または CSS ファイルのダイジェストを完全にブラウザ タブ内で計算するため、ファイル自体をハッシュするためにマシンから離れる必要はありません。
汎用ハッシュ ツールは使用可能な SRI 値を生成しません。仕様では、ほとんどのチェックサム ツールが出力する 16 進文字列ではなく、base64 でエンコードされたダイジェストが必要であり、認識されるアルゴリズムは 3 つのアルゴリズム (sha256、sha384、sha512) のみです。このジェネレーターは、アルゴリズムの選択をこれら 3 つに正確に制限し、結果を正しい方法でエンコードしてから、コピーする前に編集できるプレースホルダー src または href フィールドを使用して、その周囲に完全な HTML タグを作成することでさらに一歩進めます。
内部では、ファイルは File API で読み取られ、ネイティブの crypto.subtle.digest() 実装でハッシュされ、結果として得られるバイトは、単一の大きなスプレッド操作ではなく小さなチャンクで Base64 に変換されます。この詳細は、バンドルされた JS ファイルがおよそ 10 万バイトを超えると重要になります。この詳細は、単純な変換アプローチではブラウザーの呼び出しスタック制限に達する可能性があります。
sha384 は、SRI の例やドキュメントで最も一般的に推奨され、ダイジェスト長と衝突耐性のバランスをとるアルゴリズムであるため、デフォルトで選択されますが、ビルド パイプラインまたは CDN プロバイダーが別の要件を指定している場合は、sha256 と sha512 は 1 クリックで使用できます。