Algoritmos de Hash (SHA-256): O que São e Onde São Aplicados
Neste artigo
Um algoritmo de hash é a máquina matemática que cria a “impressão digital” de qualquer dado, de uma senha a um filme inteiro. Forjar dois arquivos com a mesma impressão custa caro: no SHA-1, a façanha exigiu 6.500 anos de processamento de CPU em 2017 (shattered.io, 2017). No MD5, mais antigo, o mesmo truque hoje leva menos de um segundo.
Essa diferença explica por que o SHA-256 está em todo lugar: no cadeado do navegador, na página de download do Linux, no aviso “não recuperamos sua senha”. Só que quase ninguém explica o que ele é sem desviar para uma aula de blockchain. Este guia mostra como a impressão digital dos dados funciona. Você vai ver o efeito avalanche com hashes reais e aprender a verificar seu primeiro download em um comando.
Resumo rápido: Um algoritmo de hash transforma qualquer dado em uma “impressão digital” de tamanho fixo: mudou uma letra, o hash muda inteiro. O SHA-256 tem 2²⁵⁶ combinações possíveis (um número com 78 dígitos) e nunca teve uma colisão encontrada. Já o MD5 é quebrado em menos de 1 segundo, e o SHA-1 será aposentado pelo NIST até 2030 (NIST, 2022). Aqui você vê como isso funciona, onde usa hash sem perceber e como conferir a integridade de um download.
O que é um algoritmo de hash?
Um algoritmo de hash é uma função matemática que transforma qualquer entrada, de uma letra a um filme inteiro, em um código de tamanho fixo: a impressão digital do dado. Essa função hash é determinística: sempre devolve o mesmo resultado para a mesma entrada. No SHA-256, o código tem 256 bits, o que dá cerca de 1,16 × 10⁷⁷ combinações possíveis.
A analogia da impressão digital é precisa. Ela identifica uma pessoa com segurança, mas ninguém reconstrói a pessoa a partir do dedo. O hash faz o mesmo com dados: identifica o arquivo sem revelar o conteúdo. Se os conceitos de cifrar e decifrar ainda são novidade, o pilar sobre o que é criptografia explica a base do zero.
Quatro propriedades definem um bom algoritmo de hash:
- Determinístico: a mesma entrada gera o mesmo hash, hoje e daqui a dez anos, em qualquer computador;
- Tamanho fixo: um “oi” e um vídeo de 2 GB viram códigos do mesmo comprimento: 64 caracteres no SHA-256;
- Mão única: calcular o hash de um dado é rápido; reconstruir o dado a partir do hash é inviável;
- Efeito avalanche: qualquer mudança na entrada, por mínima que seja, troca o hash por completo.
E o tamanho dessa “fechadura” importa. Os 256 bits do nome são 256 casas que valem 0 ou 1, e cada casa dobra o total de combinações. O resultado, 2²⁵⁶, é um número com 78 dígitos. A aula visual do canal 3Blue1Brown sobre segurança de 256 bits mostra a consequência. Nem toda a capacidade de computação do planeta, somada, chega perto de esgotar esse espaço (3Blue1Brown, 2017).
É essa escala que sustenta tudo o que vem a seguir. Guarde os dois números: 64 caracteres na saída, 78 dígitos de possibilidades.
Por que não dá para “descriptografar” um hash?
Não dá para descriptografar um hash porque hash não é criptografia: não existe chave nem operação inversa. A criptografia esconde um dado para alguém revelá-lo depois; o hash resume o dado de uma vez por todas. É como tentar recuperar as frutas inteiras a partir da vitamina batida: a informação original já não está lá.
A diferença fica clara na comparação com as cifras. Na criptografia simétrica e assimétrica, toda tranca tem chave e caminho de volta. No hash, o único “caminho de volta” é a adivinhação: testar entradas até alguma gerar o mesmo código. Com 2²⁵⁶ possibilidades, essa busca não termina nunca.
Existe ainda a colisão: duas entradas diferentes gerando o mesmo hash. Na teoria, colisões são inevitáveis, porque as entradas possíveis são infinitas e as saídas não. Na prática, encontrar uma no SHA-256 nunca aconteceu.
Melhor do que explicar é mostrar. Gerei os dois hashes abaixo no terminal, com o comando sha256sum, mudando apenas a caixa das letras do nome do site:
Efeito avalanche na prática
entrada 1
CriptoCifras
SHA-256
3b83eda7db48f75e3ea7771d515dc6d44e2e3675ab8e3d3684c231907eccf637
entrada 2
criptocifras
SHA-256
2945be181ae16a35bead6eba4eeae545b4cf2dc6c9910a994edf3a9e2ffb9e7e
duas letras trocaram de caixa e nenhum trecho do hash sobreviveu
Repare no estrago: só o “C” e o outro “C” viraram minúsculos, e os dois códigos não compartilham nem o primeiro caractere. Esse é o efeito avalanche em ação. Ele impede qualquer dedução do tipo “hashes parecidos, entradas parecidas”: o código não vaza pista nenhuma sobre o dado.
💡 Regra de bolso
Criptografia esconde para depois revelar; hash resume para nunca mais voltar. Se dá para reverter, não é hash.
MD5, SHA-1 e SHA-256: qual a diferença?
MD5, SHA-1 e SHA-256 são gerações da mesma ideia. O MD5 (1991) e o SHA-1 (1995) já foram quebrados e não devem proteger mais nada. O SHA-256, da família SHA-2 (2001), segue sem colisão conhecida e é o padrão atual. O NIST determinou a aposentadoria do SHA-1 até 31/12/2030 (NIST, 2022).
A história cabe numa linha do tempo de ascensão e queda:
Ascensão e queda de cada geração
- 1991MD5 é criado e vira o hash mais popular da década
- 1995nasce o SHA-1, adotado por certificados e assinaturas digitais
- 2001chega a família SHA-2, que inclui o SHA-256 usado até hoje
- 2004Wang e equipe demonstram as primeiras colisões do MD5
- 2017ataque SHAttered (Google e CWI) produz a primeira colisão do SHA-1
- 2022NIST anuncia a aposentadoria definitiva do SHA-1
- 2030prazo final: só SHA-2 e SHA-3 nos sistemas do governo americano
A queda do MD5 foi a mais dura. As colisões demonstradas por Wang e equipe em 2004 (Cryptology ePrint Archive, 2004) abriram a porteira. Em 2008, o CERT americano já o declarava “criptograficamente quebrado e inadequado para uso” (CERT VU#836068, 2008). Desde 2013, o ataque de Xie, Liu e Feng gera uma colisão em menos de um segundo num computador comum (Cryptology ePrint Archive, 2013). Não é risco teórico: o malware Flame usou uma colisão de MD5 para forjar um certificado da Microsoft em 2012 (Microsoft MSRC, 2012).
O SHA-1 resistiu mais, e o preço da quebra mostra a diferença de músculo. O ataque SHAttered, de Google e CWI, custou cerca de 9,2 quintilhões de computações. Foram 6.500 anos de processamento de CPU mais 110 anos de GPU (shattered.io, 2017). Caro, mas possível. E, em segurança, “possível” já é sentença.
| Algoritmo | Ano | Saída | Custo de uma colisão | Status (NIST, 2022) |
|---|---|---|---|---|
| MD5 | 1991 | 128 bits | menos de 1 segundo num PC comum | quebrado, não usar |
| SHA-1 | 1995 | 160 bits | ~9,2 quintilhões de computações (2017) | aposentar até 2030 |
| SHA-256 | 2001 | 256 bits | nenhuma colisão conhecida | recomendado |
SHA-256 no dia a dia: onde ele aparece
O SHA-256 é o hash criptográfico mais usado hoje. Ele está em praticamente toda conexão segura e verificação de integridade: você o aciona dezenas de vezes por dia sem ver. Valida os certificados por trás do cadeado HTTPS, confere downloads e atualizações de software, identifica versões no Git e encadeia os blocos de um blockchain. É também a impressão digital que identifica uma chave criptográfica: o código SHA256: que aparece ao criar um par SSH nada mais é que o hash da chave pública.
🔒
Certificados TLS/HTTPS
O cadeado do navegador depende de certificados assinados com SHA-256.
⬇️
Verificação de downloads
Sites publicam o hash do arquivo para você conferir a integridade.
🔄
Atualizações de software
Windows, Android e Linux validam cada pacote pelo hash antes de instalar.
🌿
Git
Cada versão do código é identificada por hash; o Git migra de SHA-1 para SHA-256.
🔑
Senhas (com ressalva)
Sites guardam o hash, não a senha. Mas SHA-256 puro é má ideia: veja adiante.
⛓️
Blockchain (a técnica)
Cada bloco carrega o hash do anterior: alterar um quebra a corrente inteira.
Dois cards merecem nota. O Git, que versiona quase todo software do planeta, nasceu identificando commits com SHA-1. Depois do SHAttered, o projeto definiu um formato novo baseado em SHA-256, disponível de forma experimental desde a versão 2.29 (Git, 2020). A transição segue em curso.
E o card do blockchain fica só na técnica mesmo: encadear blocos por hash é o que torna o histórico difícil de adulterar. O uso financeiro do termo é outro assunto, e não é o nosso.
Como verificar o hash de um download na prática?
Para verificar um download, gere o SHA-256 do arquivo baixado com um comando e compare o resultado com o código publicado no site oficial. Se os dois baterem, o arquivo chegou íntegro: sem corrupção e sem adulteração no caminho. O processo leva menos de um minuto e não exige instalar nada.
Passo 1: copie o hash publicado no site oficial
Projetos sérios publicam o SHA-256 ao lado do botão de download. As imagens de Linux (Ubuntu, Fedora, Mint) e o LibreOffice trazem um arquivo ou seção de “checksums”, o nome em inglês para esses códigos de verificação. Copie o hash referente ao arquivo exato que você baixou.
Passo 2: gere o hash do arquivo baixado
No Windows, abra o Prompt de Comando na pasta do download:
certutil -hashfile arquivo.iso SHA256
No Linux e no macOS, o terminal resolve com uma linha:
sha256sum arquivo.iso
# no macOS, se preferir: shasum -a 256 arquivo.iso
Quer testar agora, sem baixar nada? Gere o hash de um texto qualquer. Foi assim que produzi a demonstração do efeito avalanche:
echo -n "CriptoCifras" | sha256sum
# no macOS: echo -n "CriptoCifras" | shasum -a 256
3b83eda7db48f75e3ea7771d515dc6d44e2e3675ab8e3d3684c231907eccf637 -
Passo 3: compare os dois códigos
Confira os primeiros e os últimos oito caracteres dos dois hashes. Graças ao efeito avalanche, não existe “quase igual”: ou os 64 caracteres batem, ou o arquivo é outro. Se não bater, o download veio corrompido ou o arquivo foi trocado. Apague, baixe de novo direto da fonte oficial e compare outra vez. Persistindo a diferença, não instale: desconfie.
Por que SHA-256 puro não serve para guardar senhas?
Porque ele é rápido demais. A mesma velocidade que o torna ótimo para verificar arquivos vira arma na mão de um atacante. Uma única placa de vídeo RTX 4090 testa cerca de 22 bilhões de hashes SHA-256 por segundo. No bcrypt, algoritmo desenhado para ser lento, são apenas 184 mil (benchmark hashcat v6.2.6, 2022).
O cenário do ataque é sempre o mesmo. Um serviço é comprometido, o banco de hashes vaza, e o atacante testa bilhões de senhas candidatas offline, comparando os códigos. Quanto mais rápido o hash, mais palpites por segundo. O gráfico abaixo mostra o abismo, em escala logarítmica:
Fonte: benchmark hashcat v6.2.6, RTX 4090 (Chick3nman) (2022)
A defesa tem dois ingredientes, e os dois são padrão da indústria. O primeiro é o sal (salt): um trecho aleatório único somado a cada senha antes do hash. Ele inutiliza as rainbow tables, os dicionários gigantes de hashes pré-calculados, porque cada senha exige um cálculo novo.
O segundo é a lentidão proposital. A recomendação da OWASP, referência mundial em segurança de aplicações, é clara: usar Argon2id em primeiro lugar, depois scrypt e bcrypt. Sempre com sal único por senha (OWASP, 2026). É também por isso que site sério nunca “recupera” sua senha, apenas redefine: ele guarda o hash, não o texto.
Do seu lado do balcão, a receita já é conhecida: senha única por serviço e uma segunda camada de verificação em duas etapas. E vale conferir se suas senhas já apareceram em vazamentos antes que alguém teste isso por você.
Perguntas frequentes
É possível reverter (descriptografar) um hash?
Não. O hash é uma função de mão única: não existe chave nem operação inversa. O máximo que um atacante consegue é a força bruta, ou seja, testar entradas aos bilhões e comparar os códigos gerados. Com 2²⁵⁶ combinações no SHA-256, esse espaço de busca é impossível de esgotar.
Qual a diferença entre hash e criptografia?
Criptografia é reversível: quem tem a chave certa recupera o dado original. O hash é um resumo irreversível de tamanho fixo, sem chave nenhuma. Os papéis também diferem: criptografia protege o sigilo do conteúdo; o hash comprova integridade e identidade dos dados. Um esconde, o outro identifica.
O SHA-256 já foi quebrado?
Não. Nenhuma colisão de SHA-256 foi encontrada até hoje, e as 2²⁵⁶ combinações tornam a força bruta inviável. O NIST o indica entre os substitutos oficiais do SHA-1, que sai de cena até 2030 (NIST, 2022). É o padrão atual para certificados, downloads e assinaturas.
Por que o MD5 não é mais seguro?
Porque gerar colisões de MD5 virou trivial: elas foram demonstradas em 2004 por Wang e equipe (Cryptology ePrint Archive, 2004) e hoje saem em menos de um segundo num computador comum. Ele ainda serve para detectar corrupção acidental de arquivos, nunca para qualquer uso de segurança.
Para que serve o hash publicado junto de um download?
Ele prova que o arquivo chegou exatamente como o site o publicou. Você gera o SHA-256 do arquivo baixado com certutil -hashfile (Windows) ou sha256sum (Linux e macOS) e compara com o código publicado. Se os dois baterem, o download não veio corrompido nem adulterado.
O essencial sobre algoritmos de hash em 3 pontos
Se você levar só três ideias deste guia sobre algoritmos de hash, que sejam estas:
- Hash é impressão digital, não cofre. Não existe “descriptografar”: a função só anda para frente, e o efeito avalanche troca os 64 caracteres a cada mudança mínima na entrada;
- A família importa. MD5 e SHA-1 são passado: quebrados, com prazo de migração dado pelo NIST até 2030 (NIST, 2022). O SHA-256 é o presente, sem colisão conhecida;
- Rápido é ótimo para arquivos e péssimo para senhas. Para verificar downloads, a velocidade ajuda você; para guardar senhas, ajuda o atacante. O certo é algoritmo lento com sal, cerca de 120.000 vezes mais custoso de atacar.
A trilha de Criptografia segue daqui. Se você chegou agora, o pilar sobre o que é criptografia monta o alicerce em português claro. E o guia de senhas vazadas mostra o hash trabalhando do outro lado do balcão, inclusive na consulta segura do Have I Been Pwned. Teste o sha256sum hoje: um comando agora vale mais que qualquer instalador suspeito depois.
Comentários 0
Entre na sua conta para deixar um comentário.
Entrar