Generador de hash SRI
Genere un hash de integridad de subrecursos para cualquier archivo JS o CSS y obtenga un script o etiqueta de enlace listo para pegar.
Resultado
Subresource Integrity (SRI) permite que un navegador verifique que una secuencia de comandos o una hoja de estilo obtenida de una CDN o de un host de terceros no haya sido alterada antes de ejecutarse: el navegador codifica los bytes descargados y se niega a ejecutar el archivo si el resumen no coincide con el atributo de integridad que usted publicó. Esta herramienta calcula ese resumen para cualquier archivo JS o CSS que ingrese, completamente dentro de la pestaña de su navegador, por lo que el archivo en sí nunca necesita salir de su máquina para ser procesado.
Una herramienta hash genérica no producirá un valor SRI utilizable: la especificación requiere un resumen codificado en base64, no la cadena hexadecimal que imprimen la mayoría de las herramientas de suma de verificación, y solo reconoce tres algoritmos: sha256, sha384 y sha512. Este generador restringe la elección del algoritmo exactamente a esos tres y codifica el resultado de la manera correcta, luego va un paso más allá al componer la etiqueta HTML completa a su alrededor, con un campo src o href de marcador de posición que puede editar en su lugar antes de copiar.
Debajo del capó, el archivo se lee con File API, se aplica un hash con la implementación nativa crypto.subtle.digest() y los bytes resultantes se convierten a base64 en pequeños fragmentos en lugar de con una única operación de extensión grande, un detalle que importa una vez que un archivo JS empaquetado supera aproximadamente los cien mil bytes, donde los enfoques de conversión ingenuos pueden alcanzar el límite de pila de llamadas de un navegador.
sha384 se selecciona de forma predeterminada porque es el algoritmo más comúnmente recomendado en los ejemplos y la documentación de SRI, ya que equilibra la longitud del resumen con la resistencia a las colisiones, pero sha256 y sha512 están a un clic de distancia si una canalización de compilación o un proveedor de CDN especifica un requisito diferente.