Como usar
- Cole o texto do script ou da folha de estilo em Texto do arquivo, ou escolha o arquivo em Ou um arquivo.
- Escolha o Algoritmo. Use Os três; vale o mais forte para escrever um valor para cada algoritmo.
- Digite o Endereço do arquivo exatamente como a página vai carregá-lo. O elemento para colar aparece embaixo.
- Copie o Valor de integridade ou o Elemento para colar para a sua página. Para verificar um valor que você tem, cole-o em Valor de integridade a verificar.
Como o valor é feito
O valor de integridade é o nome de um algoritmo de hash, um traço e o resumo do arquivo em base64. O navegador faz o hash dos bytes exatos do arquivo, então o valor muda se um único byte mudar. Todo navegador em conformidade aceita sha256, sha384 e sha512 (seção 3.2 do SRI). O base64 usa o alfabeto da RFC 4648, com o sinal = no fim como preenchimento (seção 4).
Um valor com vários itens, separados por espaços, é aceito (seção 3.2.1). O navegador usa o algoritmo mais forte entre os itens que conhece, então o sha512 decide sobre o sha256.
integridade = algoritmo + "-" + base64(resumo(bytes))
- sha256: 44 caracteres de base64 depois do traço.
- sha384: 64 caracteres depois do traço.
- sha512: 88 caracteres depois do traço.
O que a verificação faz e o que não cobre
A verificação passa quando os bytes do arquivo dão um dos valores do algoritmo mais forte no atributo (seção 3.3 do SRI). Um item com um algoritmo que o navegador não conhece é ignorado. Quando não sobra nenhum item, a verificação passa sem comparar nada, então esta ferramenta informa esse caso como não verificado.
O valor não diz nada sobre a origem do arquivo. Ele prova que o arquivo tem os bytes que foram convertidos em hash. Refaça o valor sempre que o arquivo mudar, por exemplo após a atualização de uma biblioteca, e guarde o valor no mesmo lugar do elemento.
O texto abc
O texto abc são os três bytes 61 62 63 em UTF-8. Escolha sha256 e digite abc na caixa de texto. O valor de integridade do texto é o da tabela, e o elemento para colar o traz com crossorigin definido como anonymous.
| Algoritmo | Valor de integridade para abc |
|---|---|
| sha256 | sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= |
| sha384 | sha384-ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+2AhgcroefMI1i67KE0yCWn |
Perguntas frequentes
Preciso mudar o valor quando o arquivo muda?
Sim. O valor vale para uma sequência exata de bytes, então uma atualização da biblioteca, até um espaço alterado, gera outro valor. A verificação então falha até que o atributo tenha o novo valor.
Qual algoritmo devo escolher?
Todo navegador aceita os três (seção 3.2 do SRI). O sha384 é um resumo mais forte que o sha256 e um valor mais curto que o sha512. Escolha Os três; vale o mais forte para gravar um valor de cada um, e o navegador verificará o mais forte.
Por que o valor tem um nome de algoritmo e um traço?
O nome diz ao navegador qual resumo calcular. O traço termina o nome, porque os nomes não têm traço, enquanto o valor em base64 pode ter traços no seu alfabeto seguro para URL, como permite a seção 3.5 do SRI.
A ferramenta envia meu arquivo para algum servidor?
Não. O seu navegador lê o arquivo e calcula o hash com o método de resumo do navegador (crypto.subtle). A página não faz nenhuma requisição de rede e não guarda nada do que você digita ou escolhe.
Por que o elemento para colar tem crossorigin?
O SRI exige CORS para um recurso de outra origem (seção 5.3), e crossorigin definido como anonymous pede ao navegador que use CORS. O elemento o inclui tanto para scripts quanto para folhas de estilo.
Fontes
- W3C (em inglês): Subresource Integrity (Working Draft, 20 March 2026): sections 3.2, 3.3, 3.5 and 5.3
- RFC 4648 (em inglês): The Base16, Base32, and Base64 Data Encodings, section 4
- MDN (em inglês): SubtleCrypto.digest()
Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.