Glossário

Função hash

algoritmo hashfunção de resumo

Uma função hash transforma dados de praticamente qualquer tamanho em um resumo de tamanho fixo.

Definição

Uma função hash recebe dados e calcula um valor de tamanho fixo chamado hash, resumo ou impressão digital. Os mesmos bytes de entrada sempre produzem a mesma saída, enquanto até uma pequena mudança na entrada normalmente altera o resumo.

Hashing não é criptografia reversível. Um resumo não deve ser decodificado ou descriptografado para recuperar a mensagem original; ele é usado para comparação, identificação, verificação de integridade e como componente de construções criptográficas maiores.

Propriedades criptográficas

Uma função hash criptográfica é projetada para resistir a ataques de pré-imagem, segunda pré-imagem e colisão. Em termos simples, deve ser difícil encontrar uma entrada para um resumo dado, encontrar outra entrada com o mesmo resumo de uma mensagem escolhida ou encontrar quaisquer duas entradas com o mesmo resumo.

SHA-256, SHA-512, SHA-3 e BLAKE2 são usados em sistemas modernos. MD5 e SHA-1 ainda aparecem em somas de verificação legadas, mas sua resistência a colisões está quebrada e eles não devem proteger dados sensíveis.

Usos e confusões comuns

Hashes costumam ser exibidos como strings hexadecimais. Por exemplo, SHA-256 produz 32 bytes, normalmente escritos como 64 caracteres hexadecimais. Comparar um resumo recém-calculado com um valor publicado e confiável pode mostrar se os dados mudaram.

Um hash simples não autentica quem criou os dados. Use HMAC ou assinatura digital quando um atacante puder modificar conteúdo deliberadamente, e use uma função de hash de senha como Argon2id ou bcrypt em vez de um hash rápido bruto para armazenar senhas.

Perguntas frequentes

Não. Um hash é um resumo unidirecional, não texto cifrado. Só é possível tentar entradas possíveis, calcular seus hashes e comparar os resultados.

Elas se sobrepõem em alguns usos, mas não em segurança. Uma soma de verificação detecta mudanças acidentais; um hash criptográfico é projetado para resistir a certos ataques deliberados.

Elas podem usar algoritmos diferentes ou aplicar hash a bytes diferentes. Espaços, quebras de linha, normalização Unicode, codificação de texto e entrada como arquivo ou texto afetam o resultado.

Veja também