Home/Developer, Code & Web Engineering Tools/Subresource Integrity (SRI) Hash & Tag Generator

Subresource Integrity (SRI) Hash & Tag Generator

Generate SHA-256, SHA-384, and SHA-512 Subresource Integrity (SRI) cryptographic hashes and HTML script/link tags instantly client-side.

Resource Source & Hash Specs

Common CDN Presets:

HTML Tag & Attribute Modifiers

Cryptographic SRI Hashes

SHA384Recommended

sha384-CALCULATING_OR_WAITING_FOR_INPUT...

SHA512

sha512-CALCULATING_OR_WAITING_FOR_INPUT...

SHA256

sha256-CALCULATING_OR_WAITING_FOR_INPUT...

Production HTML Tag Snippet
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js" integrity="sha384-SAMPLE_INTEGRITY_HASH" crossorigin="anonymous"></script>
Equivalent CLI Command (curl + openssl)
curl -sSL "https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js" | openssl dgst -sha384 -binary | openssl base64 -A | sed 's/^/sha384-/'
W3C Subresource Integrity Level 1 ValidatedWeb Crypto API (Client-side)

Architectural Foundations: How Subresource Integrity Protects the Modern Web

Content Delivery Networks (CDNs) host a massive portion of public internet dependencies, from UI libraries like React and Vue to analytics agents and CSS frameworks. However, loading untrusted remote scripts introduces severe supply chain vulnerabilities. Subresource Integrity (SRI) mitigates this risk by cryptographically sealing third-party assets:

Supply Chain Defense

If an external CDN is compromised, DNS is hijacked, or a rogue maintainer pushes a malicious build containing credit card skimmers (Magecart attacks), the browser intercepts the tampered payload and refuses execution.

Deterministic Digests

SRI uses deterministic cryptographic hashing. While standard hex digests can be verified using our SHA checksum generator, SRI converts raw SHA-256, SHA-384, or SHA-512 byte streams into Base64 format for browser string verification.

CORS Synchronization

The W3C specification strictly requires cross-origin assets to be fetched with CORS headers (crossorigin="anonymous"). This prevents side-channel data leakage across isolated cross-origin boundaries.

Cryptographic Algorithm Comparison: SHA-256 vs SHA-384 vs SHA-512

The W3C SRI specification supports multiple members of the SHA-2 cryptographic family. Selecting the right algorithm involves balancing security overhead with attribute length:

AlgorithmDigest Length (Bits)Base64 Output LengthCollision Security MarginW3C Recommendation
SHA-256256 bits44 chars (+ prefix)High (128-bit collision)Standard / Supported
SHA-384 (Default)384 bits64 chars (+ prefix)Ultra High (192-bit)Recommended Best Practice
SHA-512512 bits88 chars (+ prefix)Maximum (256-bit)Supported (Larger payload)

Enterprise Deployment Checklist & CORS Integration Guide

Best Practices for Continuous Delivery

  • • Automate SRI in Webpack/Vite: Utilize plugins like webpack-subresource-integrity to automatically compute integrity digests at asset bundle compilation.
  • • Never Target Floating Version Branches: Always link against immutable semantic versions (e.g. /react@18.3.1/umd/react.production.min.js). If a CDN silently updates a patch version under a tag like /react@18/, your site will brick immediately.
  • • Combine with Content Security Policy (CSP): Complement SRI with CSP directives such as require-sri-for script style; to mandate integrity validation on every external link.

Pitfalls That Break Production Builds

  • • Missing CORS Headers on the CDN: If the remote CDN does not return Access-Control-Allow-Origin: *, browsers will outright block resource execution even if the hash matches.
  • • On-the-Fly CDN Compression (Gzip/Brotli): SRI validates the raw uncompressed bytes of the file, not the compressed transport stream. Ensure your build hashes the payload prior to transfer encoding.
  • • Whitespace or Line-Ending Variations: Hashing a file checked out on Windows (CRLF) vs Linux (LF) produces entirely different SRI digests. Minified production code eliminates this variance.

Frequently Asked Questions (FAQ)

What is Subresource Integrity (SRI) and why is it critical?

Subresource Integrity (SRI) is a W3C security standard that enables web browsers to verify that remote resources (like JavaScript files and CSS stylesheets hosted on third-party CDNs) have not been maliciously modified, injected with malware, or corrupted before execution.

Why is SHA-384 the recommended hash algorithm for SRI tags?

The W3C Subresource Integrity specification and Mozilla recommend SHA-384 as the sweet spot between collision resistance, quantum cryptographic security margins, and minimal byte overhead inside HTML attributes compared to SHA-512.

Why is the crossorigin="anonymous" attribute mandatory for SRI?

When loading cross-origin resources, CORS policies prevent browsers from reading the raw binary response without explicit permission. The crossorigin="anonymous" attribute instructs the browser to make a CORS request without credentials, enabling SRI verification without CORS blocking.

Why does fetching some CDN URLs fail directly in the browser?

Modern browsers enforce strict Cross-Origin Resource Sharing (CORS) rules. If a remote CDN server does not serve the Access-Control-Allow-Origin: * response header, client-side JavaScript cannot read the binary stream. You can upload the local file or paste raw code into TwisterTools to generate the exact hash client-side.

Can multiple hashes be supplied within a single integrity attribute?

Yes. Multiple space-separated integrity hashes can be provided (e.g. integrity="sha256-... sha384-..."). The browser will select the strongest cryptographic hash algorithm it supports and validate that matching digest.

Related & Complementary Utilities

Explore more privacy-first client-side web tools.