Generatore di hash SRI
Genera un hash Subresource Integrity per qualsiasi file JS o CSS e ottieni un tag script o link pronto da incollare.
🔒 Elaborato interamente nel tuo browser: nulla di ciò che inserisci qui verrà mai caricato.
Risultato
Subresource Integrity (SRI) consente al browser di verificare che uno script o un foglio di stile prelevato da una CDN o da un host di terze parti non sia stato alterato prima di essere eseguito: il browser effettua l'hash dei byte scaricati e rifiuta di eseguire il file se il digest non corrisponde all'attributo integrity pubblicato. Questo strumento calcola quel digest per qualsiasi file JS o CSS tu trascini, interamente all'interno della scheda del browser, quindi il file non deve mai lasciare la tua macchina per essere hashato.
Un generico strumento di hash non produrrà un valore SRI utilizzabile: la specifica richiede un digest codificato in Base64, non la stringa esadecimale prodotta dalla maggior parte degli strumenti per checksum, e riconosce solo tre algoritmi: sha256, sha384 e sha512. Questo generatore limita la scelta dell'algoritmo esattamente a questi tre e codifica il risultato nel modo corretto, andando oltre componendo l'intero tag HTML attorno ad esso, con un campo segnaposto src o href che puoi modificare direttamente prima di copiare.
Dietro le quinte, il file viene letto con l'API File, hashato con l'implementazione nativa crypto.subtle.digest() e i byte risultanti vengono convertiti in Base64 in piccoli blocchi anziché con un'unica grande operazione di spread: un dettaglio che conta quando un file JS raggruppato supera circa centomila byte, poiché approcci di conversione ingenui possono raggiungere il limite dello stack di chiamate del browser.
sha384 è selezionato per impostazione predefinita perché è l'algoritmo più comunemente raccomandato negli esempi e nella documentazione SRI, bilanciando la lunghezza del digest con la resistenza alle collisioni, ma sha256 e sha512 sono a portata di clic se una pipeline di build o un provider CDN specifica un requisito diverso.