A LGPD (Lei Geral de Proteção de Dados) brasileira incentiva técnicas de pseudonimização para dados pessoais sensíveis, e uma prática comum adotada por sistemas brasileiros é armazenar um hash do CPF em vez do número em texto puro sempre que só é preciso comparar ou indexar, não exibir o número original. Como o hash é unidirecional, um vazamento da base não expõe diretamente o CPF de cada pessoa.
O que todas as funções hash têm em comum
A propriedade-chave é o determinismo: os mesmos dados de entrada sempre geram o mesmo hash. A segunda propriedade é o efeito avalanche: mudar um único bit na entrada muda completamente o resultado, então é impossível saber pelo hash o quanto dois arquivos originais se parecem.
Por que MD5 e SHA-1 são considerados inseguros
Para ambos os algoritmos foram encontradas formas práticas de criar dois conjuntos de dados diferentes com o mesmo hash — uma chamada colisão. Isso os torna inadequados onde a robustez criptográfica importa (assinaturas digitais, certificados), embora ainda sejam usados onde só é necessária uma verificação rápida de integridade.
SHA-256 e a família SHA-2
O SHA-256 gera um hash de 256 bits e até hoje não tem colisões práticas conhecidas. É o algoritmo mais comum para pseudonimizar identificadores como CPF ou CNPJ antes de armazená-los, justamente por não ter como ser revertido.
Para que serve
- Verificar a integridade de arquivos baixados comparando com um hash publicado.
- Pseudonimizar identificadores pessoais (CPF, CNPJ) antes de guardá-los num banco de dados.
- Criar impressões digitais curtas e únicas para grandes volumes de dados.
Por que o SHA-3 não substituiu o SHA-2
O SHA-3 foi escolhido vencedor de um concurso separado do NIST para o caso de, algum dia, ser encontrada uma vulnerabilidade fundamental no SHA-2 — é um "seguro" baseado numa construção interna fundamentalmente diferente (Keccak), não um sucessor no sentido de substituição. Como até agora não foram encontrados ataques práticos ao SHA-2, o SHA-256 continua sendo o padrão na maioria dos sistemas.