Sobre hashes criptográficos
Uma função de hash criptográfica recebe qualquer entrada e produz uma string de dígitos hexadecimais de comprimento fixo. Até uma pequena mudança na entrada altera completamente a saída. Isso torna os hashes úteis para verificar integridade de arquivos, armazenar senhas e assinaturas digitais.
SHA-256 e SHA-512 fazem parte da família SHA-2 e continuam seguros para a maioria dos usos hoje. O SHA-1 é considerado fraco contra ataques de colisão e está incluído aqui apenas para compatibilidade e fins legados. O MD5 não está disponível nesta ferramenta porque as políticas de segurança do navegador o restringem via Web Crypto API.
Como gerar um hash SHA de um texto?
Para gerar um hash SHA, os bytes UTF-8 do texto são passados pelo algoritmo de hash escolhido (SHA-1, SHA-256, SHA-384 ou SHA-512), que processa os dados por rodadas fixas de operações bit a bit e produz um digest de comprimento fixo em hexadecimal. Exemplo: o hash SHA-256 de "hello" é sempre 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824.
Passos para gerar um hash criptográfico
- Converta o texto de entrada em bytes usando codificação UTF-8.
- Escolha um algoritmo de hash: SHA-1 (saída de 160 bits), SHA-256 (256 bits), SHA-384 (384 bits) ou SHA-512 (512 bits).
- Passe os bytes pela função de compressão do algoritmo, que roda em rodadas fixas independentemente do tamanho da entrada.
- O algoritmo produz um digest binário de comprimento fixo — 20 bytes para SHA-1, 32 para SHA-256, 48 para SHA-384, 64 para SHA-512.
- Converta o digest binário em uma string hexadecimal minúscula para exibição, usando dois caracteres hex por byte.
Comprimentos de saída do hash
SHA-1 = 160 bits (40 caracteres hex) | SHA-256 = 256 bits (64 caracteres hex) | SHA-384 = 384 bits (96 caracteres hex) | SHA-512 = 512 bits (128 caracteres hex)
- Digest = a saída de comprimento fixo de uma função de hash, mostrada aqui em hexadecimal minúsculo
- Qualquer alteração na entrada, mesmo um caractere, produz um digest completamente diferente (o efeito avalanche)
Exemplos de hashes do texto "hello"
| Algoritmo | Hash de "hello" |
|---|
| SHA-1 | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d |
| SHA-256 | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| SHA-384 | 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f |
| SHA-512 | 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 |
Perguntas frequentes
O SHA-1 é seguro para usar?
O SHA-1 não é seguro para fins de segurança como assinaturas digitais ou validação de certificados, porque pesquisadores demonstraram um ataque de colisão prático em 2017 (duas entradas diferentes produzindo o mesmo hash). Ele está incluído aqui apenas para compatibilidade com sistemas legados e usos não relacionados à segurança, como checksums simples; use SHA-256 ou superior para qualquer coisa sensível à segurança.
Por que o MD5 não é oferecido nesta ferramenta?
Esta ferramenta usa a Web Crypto API embutida no navegador (crypto.subtle.digest), que suporta SHA-1 e a família SHA-2, mas não implementa MD5, já que o MD5 é considerado criptograficamente quebrado e os fabricantes de navegadores não o adicionaram à API padrão.
Posso reverter um hash de volta ao texto original?
Não. Uma função de hash criptográfica é uma função de mão única por design — não existe algoritmo para recuperar a entrada a partir do digest. Ferramentas que parecem "quebrar" hashes na verdade funcionam gerando hash de grandes listas de tentativas e comparando os resultados, e não revertendo a matemática.
Para que serve um hash se ele não pode ser revertido?
Hashes verificam que os dados não mudaram: comparar o hash de um arquivo baixado com um hash publicado confirma a integridade, e comparar hashes de senhas (com salting adequado) permite que um sistema verifique um login sem armazenar a senha em texto puro.
Esta ferramenta gera hash de texto UTF-8 inteiramente no seu navegador usando a Web Crypto API; ela não gera hash de arquivos enviados, não oferece MD5 e não adiciona salt, então um texto de entrada idêntico sempre produz o hash idêntico mostrado aqui.
Sources: FIPS 180-4 — Secure Hash Standard (SHS)