0

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í.

🔗

Přetáhněte obrázek

Funguje s jakýmkoliv souborem JS nebo CSS – nic se nenahrává, hash se vypočítává lokálně.

Integrita subresource povoluje pouze výtahy sha256, sha384 nebo sha512, kódované base64 – tento nástroj odpovídajícím způsobem omezuje volby, takže výstup je vždy správný.

Buy Me a Coffee at ko-fi.com
Zpracování... 0%
Čtení souboru
Výpočetní přehled
Kódování do base64
Hotovo

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.