O que é um hash criptográfico?
Um hash criptográfico é um método de cálculo que transforma dados em um resumo de tamanho fixo. Seja a entrada uma única frase ou um arquivo grande, o mesmo algoritmo de hash sempre produz um resultado com o tamanho que esse algoritmo define. Esse resultado se chama valor de hash ou resumo.
Funciona de forma parecida com uma "impressão digital" dos dados: enquanto a entrada não muda, o valor de hash calculado também não muda, e alterar até um único caractere da entrada normalmente produz um resultado visivelmente diferente. Assim, outra pessoa pode recalcular o valor de hash para checar se os dados que recebeu correspondem ao original, sem comparar todo o conteúdo caractere por caractere.
A metáfora tem limites. Um valor de hash não é uma abreviação dos dados e não serve para recuperar o texto original, e também não é um identificador absolutamente único. O que um hash criptográfico seguro busca é tornar computacionalmente muito difícil voltar à entrada ou encontrar o mesmo resultado de propósito — não garantir matematicamente que colisões nunca ocorram.
A entrada e a saída de um cálculo de hash
Um algoritmo de hash opera sobre uma sequência determinada de dados binários. Texto, imagens e transações precisam ser convertidos em bytes antes do cálculo; uma codificação de caracteres diferente, outra ordem de campos, ou outra forma de arranjar informações estruturadas em bytes produzem uma entrada diferente e, portanto, um resultado diferente. Esse processo de arranjo costuma ser chamado de serialização.
O SHA-256, por exemplo, sempre produz 256 bits, ou seja, 32 bytes. Valores de hash são muitas vezes escritos como 64 caracteres hexadecimais, mais legíveis para pessoas e softwares. As duas entradas abaixo diferem apenas na caixa de uma letra e, ainda assim, os resultados são completamente diferentes:
| Entrada | Valor de hash SHA-256 |
|---|---|
hello |
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
Hello |
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
A mesma entrada gera de forma estável o mesmo resultado, então participantes diferentes podem verificar de maneira independente. Um resultado visivelmente diferente facilita perceber que a entrada mudou. Mas "parecer aleatório" não basta para estabelecer se um algoritmo é seguro; a segurança também depende de ele resistir a ataques específicos.
Três propriedades importantes de um hash criptográfico
Um hash criptográfico normalmente precisa tornar difíceis, nas condições reais de computação, estas três coisas:
- Dado um valor de hash, deve ser difícil encontrar uma entrada que produza aquele resultado. Isso se chama resistência à pré-imagem. Em termos simples, um valor de hash não é um arquivo compactado que se possa decodificar.
- Dada uma entrada conhecida, deve ser difícil encontrar uma segunda entrada diferente que produza o mesmo valor de hash. Isso se chama resistência à segunda pré-imagem.
- Deve ser difícil encontrar duas entradas diferentes quaisquer que produzam o mesmo valor de hash. Isso se chama resistência a colisões.
Como a quantidade de entradas possíveis é muito maior que a quantidade de saídas de tamanho fixo, as colisões existem necessariamente em termos matemáticos. O objetivo de segurança não é eliminá-las, e sim deixar quem ataca sem conseguir encontrar uma colisão aproveitável a um custo viável.
"Difícil de reverter" também não significa que um hash consiga esconder todo segredo. Se a faixa de entradas é pequena ou fácil de adivinhar — senhas comuns, por exemplo —, quem ataca pode testar candidatos um a um e comparar resultados. Por isso, guardar senhas normalmente exige um esquema de hash feito para senhas, que misture dados aleatórios próprios de cada registro (um sal) e defina quanta computação cada tentativa exige (um parâmetro de custo). Um único hash rápido comum de uma senha não é suficiente.
Diferenças entre hash, criptografia, assinatura digital e checksum
Todas essas técnicas podem servir para processar ou checar dados, mas resolvem problemas diferentes:
| Método | Função principal | Os dados originais podem ser recuperados | É necessária uma chave |
|---|---|---|---|
| Hash criptográfico | Produz um resumo dos dados para checar integridade ou construir outros mecanismos criptográficos | Projetado para que a entrada não seja deduzida a partir do resumo | Não em um hash comum |
| Criptografia | Impede que pessoas sem autorização leiam o conteúdo | Pode ser descriptografado com a chave correta | Sim |
| Assinatura digital | Mostra que uma parte com a chave privada correspondente autorizou dados específicos, e checa se eles foram alterados | Uma assinatura não serve para recuperar os dados originais | Assinar e verificar usam um par de chaves |
| Checksum comum | Detecta erros acidentais em transmissão ou armazenamento | Não permite recuperar os dados originais | Normalmente não |
Um hash por si só não estabelece quem criou os dados. Um sistema de assinatura digital normalmente calcula primeiro um resumo dos dados e depois faz a chave privada assinar o resultado associado a esses dados; quem verifica precisa também da chave pública e das regras de assinatura para checar a relação de autorização. Um checksum comum protege sobretudo contra corrupção acidental e normalmente não resiste a alguém modificando os dados de propósito.
Como as blockchains usam hash
Uma blockchain não mantém seu registro com um único valor de hash. O hash normalmente é usado junto com assinaturas digitais, validação pela rede, consenso e estruturas de dados, e nesse contexto assume as tarefas a seguir.
Identificar transações ou outros dados
Algumas redes calculam um identificador a partir dos dados da transação arranjados no formato do protocolo. Por exemplo, o identificador de transação do Bitcoin (TXID) vem de um hash dos dados serializados da transação. Desde que os participantes apliquem as mesmas regras aos mesmos dados, conseguem calcular o mesmo identificador de forma independente.
Um "hash de transação", porém, não é um número universal para o qual todas as redes usem o mesmo algoritmo ou o mesmo formato de entrada. O nome da rede, o algoritmo e as regras de serialização fazem parte do significado, e copiar apenas uma sequência de caracteres pode não ser suficiente para identificar um objeto sem ambiguidade.
Encadear blocos e expor mudanças no histórico
Um bloco pode guardar o hash do cabeçalho do bloco anterior. Quando os dados do bloco anterior mudam, o hash dele também muda, e o valor guardado nos blocos seguintes deixa de corresponder. Tanto os cabeçalhos de bloco do Bitcoin quanto os blocos do Ethereum contêm informação de hash apontando para o bloco anterior.
Esse encadeamento facilita expor mudanças no histórico, mas não impede fisicamente que alguém recalcule hashes. Decidir qual histórico a rede aceita no fim ainda exige regras de validação, um mecanismo de consenso e a avaliação do estado da rede pelos participantes.
Resumir grandes volumes de dados e fornecer provas de inclusão
Estruturas como as árvores de Merkle combinam e aplicam hash a vários itens camada por camada, chegando a um único hash raiz. Quem verifica pode usar poucos hashes intermediários para checar se um item está incluído em um conjunto de dados já comprometido, sem transferir todo o conteúdo a cada vez. A árvore de Merkle Patricia do Ethereum é uma estrutura que encadeia dados de estado por hash.
Um hash raiz só pode estabelecer se determinados dados são consistentes com aquele compromisso criptográfico. Não pode estabelecer que a informação de entrada veio de uma fonte confiável, nem que um evento fora da cadeia realmente ocorreu.
Participar da prova de trabalho
Em um sistema de prova de trabalho, os participantes ajustam repetidamente dados do bloco candidato e calculam hashes, buscando um resultado que atenda à condição de dificuldade do protocolo. Os outros nós conseguem checar rapidamente se o resultado se qualifica. Aqui o hash fornece um problema repetível e um resultado verificável, mas qual bloco a rede aceita continua sendo determinado pelas regras completas de consenso.
Algoritmos de hash não são intercambiáveis
SHA-256, SHA-3 e outros hashes criptográficos são famílias de algoritmos diferentes. Mesmo quando dois algoritmos produzem 256 bits, eles não geram o mesmo resultado para a mesma entrada. Uma instrução de protocolo ou de verificação de arquivo precisa informar tanto o nome do algoritmo quanto a forma de processar a entrada; "calcular um hash" por si só não basta.
Entre os algoritmos de hash seguros de uso frequente estão as famílias SHA-2 e SHA-3. O Secure Hash Standard do Instituto Nacional de Padrões e Tecnologia (NIST) dos Estados Unidos cobre a família SHA-2, e o padrão SHA-3 cobre a família SHA-3. Nomes de algoritmo parecidos também não implicam detalhes de implementação iguais. Um sistema deve usar o algoritmo que seu protocolo exige explicitamente e que continua adequado ao uso atual; o fato de um algoritmo antigo ainda produzir resultado não significa que ele continue atendendo aos requisitos de segurança.
Perguntas frequentes
Um valor de hash pode ser descriptografado?
Um hash criptográfico comum não pode ser "descriptografado", porque hash não é criptografia e não existe chave de descriptografia correspondente. Quem ataca pode encontrar um valor coincidente adivinhando a entrada, esgotando um espaço de entradas pequeno ou explorando uma fraqueza do algoritmo, mas isso não é recuperar o texto original diretamente do resumo.
Se dois dados têm o mesmo valor de hash, o conteúdo é necessariamente igual?
Não com certeza matemática, porque uma saída de tamanho fixo necessariamente admite colisões. Quando o algoritmo mantém resistência a colisões suficiente e se confirma que as duas partes usam a mesma codificação e as mesmas regras de cálculo, um valor de hash idêntico normalmente serve como evidência forte de que os dados correspondem.
Ver um valor de hash confirma que um arquivo é seguro?
Não. Também é preciso saber de onde vem o valor de hash esperado. Se quem ataca substituiu tanto o arquivo quanto o valor de hash na página, o recálculo ainda pode "corresponder". O hash permite checar se os dados são consistentes com um resumo conhecido, mas esse resumo precisa ser obtido por um canal confiável.
Se uma blockchain usa hash, a informação on-chain é verdadeira?
Não. O hash ajuda a checar se os dados mudaram e se estruturas de dados diferentes correspondem, mas não consegue julgar se o conteúdo de entrada descreve o mundo real. Procedência dos dados, autorização por assinatura, validação pela rede e consenso continuam a ser avaliados separadamente.
Conceitos relacionados
Continue com bloco, blockchain, chave pública e chave privada, ou volte ao glossário de criptomoedas.
Fontes
- NIST: definição de função hash criptográfica — resumos de tamanho fixo, resistência à pré-imagem, à segunda pré-imagem e a colisões.
- NIST FIPS 180-4: Secure Hash Standard — família SHA-2, tamanhos de resumo e usos de integridade.
- NIST FIPS 202: padrão SHA-3 — família SHA-3 e sua relação com a SHA-2.
- NIST SP 800-63B: verificadores de senha — esquemas de hash de senha, sais e parâmetros de custo.
- Bitcoin Developer Reference: transações — dados serializados da transação e TXID.
- Bitcoin Developer Reference: blockchain — hash do cabeçalho do bloco anterior, raiz de Merkle e prova de trabalho.
- Ethereum.org: blocos — hash do bloco anterior junto com raízes de estado e de transações.
- Ethereum.org: árvore de Merkle Patricia — estruturas de dados encadeadas por hash e provas de inclusão.
© 2025 OKX. Este artigo pode ser reproduzido ou distribuído na íntegra, ou trechos de até 100 palavras podem ser usados, desde que não haja fins comerciais. Caso o artigo completo seja reproduzido ou redistribuído, é obrigatório informar claramente: “Este artigo é © 2025 OKX e está sendo utilizado com permissão.” Trechos permitidos devem citar o nome do artigo e incluir a atribuição, como: "Nome do artigo, [nome do autor, se aplicável], © 2025 OKX." Alguns conteúdos podem ter sido criados com o apoio de ferramentas de inteligência artificial (IA). Não são permitidos trabalhos derivados ou outros usos deste artigo.









