Generátor hash SRI
Vygenerujte hash Subresource Integrity pro jakýkoli soubor JS nebo CSS a získejte připravený skript nebo značku odkazu k vložení.
Výsledek
Subresource Integrity (SRI) umožňuje prohlížeči ověřit, že skript nebo šablona stylů načtená z CDN nebo hostitele třetí strany nebyla před spuštěním změněna – prohlížeč zahašuje stažené bajty a odmítne soubor spustit, pokud digest neodpovídá atributu integrity, který jste publikovali. Tento nástroj vypočítá tento výtah pro jakýkoli soubor JS nebo CSS, který vložíte, zcela na kartě prohlížeče, takže samotný soubor nikdy nemusí opustit váš počítač, aby byl hašován.
Obecný hashovací nástroj nevytvoří použitelnou hodnotu SRI: specifikace vyžaduje výtah zakódovaný v base64, nikoli hexadecimální řetězec, který většina nástrojů pro kontrolní součet tiskne, a rozpoznává pouze tři algoritmy — sha256, sha384 a sha512. Tento generátor omezuje výběr algoritmu přesně na tyto tři a zakóduje výsledek správným způsobem, poté jde o krok dále tím, že kolem něj vytvoří úplný HTML tag, se zástupným polem src nebo href, které můžete před kopírováním upravit.
Pod kapotou je soubor načten pomocí File API, zahašován pomocí nativní implementace crypto.subtle.digest() a výsledné bajty jsou převedeny na base64 po malých kouscích, nikoli pomocí jedné velké operace rozšíření – což je detail, na kterém záleží, jakmile přibalený soubor JS přesáhne zhruba sto tisíc bajtů, kde naivní přístupy ke konverzi mohou narazit na limit zásobníku volání prohlížeče.
sha384 je vybrána ve výchozím nastavení, protože je to algoritmus nejčastěji doporučovaný v příkladech a dokumentaci SRI, vyvažuje délku digestu proti odolnosti proti kolizi, ale sha256 a sha512 jsou na jedno kliknutí, pokud poskytovatel sestavování nebo poskytovatel CDN specifikuje jiný požadavek.