SRI-hashgenerator
Genereer een Subresource Integrity-hash voor elk JS- of CSS-bestand en krijg een kant-en-klaar script- of link-element om te plakken.
🔒 Wordt volledig in uw browser verwerkt. Niets wat u hier invoert, wordt ooit geüpload.
Resultaat
Subresource Integrity (SRI) stelt een browser in staat te verifiëren dat een script of stylesheet dat van een CDN of externe host wordt opgehaald, niet is gewijzigd voordat het wordt uitgevoerd — de browser hasht de gedownloade bytes en weigert het bestand uit te voeren als de digest niet overeenkomt met het door u gepubliceerde integrity-attribuut. Deze tool berekent die digest voor elk JS- of CSS-bestand dat u hierin sleept, volledig binnen uw browsertabblad, zodat het bestand zelf uw machine nooit hoeft te verlaten om gehasht te worden.
Een generieke hashtool levert geen bruikbare SRI-waarde op: de specificatie vereist een base64-gecodeerde digest, niet de hexadecimale string die de meeste checksumtools afdrukken, en erkent slechts drie algoritmes — sha256, sha384 en sha512. Deze generator beperkt de algoritmekeuze tot precies die drie en codeert het resultaat op de juiste manier, en gaat dan nog een stap verder door de volledige HTML-tag eromheen samen te stellen, met een placeholder src- of href-veld dat u kunt aanpassen voordat u kopieert.
Onder de motorkap wordt het bestand gelezen met de File API, gehasht met de native crypto.subtle.digest()-implementatie en worden de resulterende bytes in kleine brokken omgezet naar base64 in plaats van met één grote spread-operatie — een detail dat van belang is zodra een gebundeld JS-bestand de grens van ongeveer honderdduizend bytes overschrijdt, waar naïeve conversiemethoden tegen de call-stacklimiet van een browser kunnen aanlopen.
sha384 is standaard geselecteerd omdat dit het algoritme is dat het meest wordt aanbevolen in SRI-voorbeelden en -documentatie, met een balans tussen digestlengte en botsingsbestendigheid, maar sha256 en sha512 zijn één klik verwijderd als een build-pipeline of CDN-provider een andere vereiste voorschrijft.