Gerador de integridade de sub-recursos SRI

Cole o texto exato do script ou CSS para calcular o hash dos bytes UTF-8. A URL é usada apenas na tag; seu conteúdo não é baixado.

Funciona localmente no seu navegador
Esta ferramenta processa todos os dados localmente no seu navegador.
Fonte do recursoCole os bytes exatos como texto de um script ou folha de estilo. O hash muda quando qualquer caractere muda.
Algoritmos

Como gerar hashes de integridade SRI

A página transforma o texto de JavaScript ou CSS colado em valores de Subresource Integrity com a API Web Crypto. Ela codifica o texto em UTF-8, calcula o hash dos bytes com SHA-256, SHA-384 ou SHA-512 e mostra cada resultado em base64 no formato sha256-… que o atributo integrity espera.

Tudo acontece nesta aba: o texto não é enviado, nenhuma requisição é feita enquanto a ferramenta trabalha, e a URL opcional só entra na tag HTML que você cola ao lado do script ou da folha de estilo que quer proteger.

  1. Cole o conteúdo exato do arquivo na caixa de origem. Uma área de texto não carrega binários, então isso vale para JavaScript, CSS, JSON ou HTML legíveis.
  2. Marque os algoritmos necessários. SHA-256 basta para a maioria dos recursos; com vários marcados, o navegador escolhe o mais forte que suporta.
  3. Opcionalmente, cole a URL de onde o recurso será servido: ela decide se a tag é de script ou de folha de estilo.
  4. Clique em Gerar integridade. A saída lista uma linha por algoritmo, o atributo integrity e a tag.
  5. Copie o resultado ou baixe sri-integrity.txt e compare o hash com o da sua ferramenta de build antes de publicar.

O que os hashes cobrem e o que a página verifica

O que a página calcula

A entrada é lida como texto e codificada com TextEncoder, então o hash cobre os bytes UTF-8 exatamente do que está na caixa. Cole abc e a primeira linha é sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=, o mesmo valor que printf abc | openssl dgst -sha256 -binary | base64 imprime. Cada hash é o base64 do resumo bruto unido ao nome do algoritmo por um hífen: o formato usado pelo atributo integrity.

Um único caractere muda o hash, inclusive o fim de linha. Um arquivo salvo com finais CRLF, ou uma cópia reorganizada pelo editor, gera um hash diferente do arquivo publicado. Se um hash falhar em produção, compare os bytes, não o texto na tela.

A URL e a tag

O campo de URL serve apenas para montar a tag que você cola no HTML. A página não baixa a URL: nenhuma requisição sai do navegador enquanto a ferramenta trabalha. Uma URL terminada em .css, com consulta ou fragmento opcionais, gera uma tag <link rel="stylesheet" href="…" integrity="…" crossorigin="anonymous">; qualquer outra gera uma tag <script src="…">.

Só são aceitas URLs http://, https://, //host, /caminho e ./caminho ou ../caminho; aspas, espaços e sinais de menor e maior são recusados, e os valores dos atributos são escapados antes de serem escritos. Com URL inválida a execução para com uma mensagem em vez de copiar uma tag quebrada, e o resultado anterior sai da tela.

O que o SRI não faz aqui

Subresource Integrity é uma verificação do navegador: um script ou uma folha de estilo só roda se os bytes corresponderem ao valor de integridade. Os hashes provam integridade, não autenticidade: quem puder alterar o arquivo pode recalcular o hash. Nada aqui verifica se a URL informada entrega esses bytes; o recurso nunca é baixado.

Como a entrada é uma caixa de texto, a ferramenta não calcula o hash de um binário, de um pacote comprimido nem de um arquivo em outra codificação: abra esses no terminal e use o mesmo comando. O campo de URL também não é uma verificação; ele só evita que você escreva a tag à mão.

Ferramentas recentes: