Calculadora de código hash CRC-32C
Publicado: 17 de fevereiro de 2025 às 18:45:11 UTC
Calculadora de código hash que utiliza a função hash CRC-32C (Cyclic Redundancy Check 32 bits, variante C) para calcular um código hash com base na introdução de texto ou no carregamento de ficheiros.CRC-32C Hash Code Calculator
A Verificação de Redundância Cíclica (CRC) é um código de deteção de erros normalmente utilizado para detetar alterações acidentais em dados brutos. Embora não seja tecnicamente uma função hash criptográfica, o CRC-32 é frequentemente designado por hash devido à sua capacidade de produzir uma saída de tamanho fixo (32 bits) a partir de uma entrada de comprimento variável. A versão apresentada nesta página é a variante CRC-32C, que é uma versão mais recente, "mais inteligente" (melhor detecção de erros) que é geralmente acelerada por hardware nos CPUs modernos (via SSE 4.2).
Divulgação completa: eu não escrevi a implementação específica da função hash usada nesta página. Trata-se de uma função padrão incluída na linguagem de programação PHP. Apenas criei a interface Web para a tornar publicamente disponível aqui por conveniência.
Sobre o algoritmo de hash CRC-32C
Não sou matemático, mas tentarei explicar esta função hash com uma analogia simples. Ao contrário de muitas funções de hash criptográficas, não é um algoritmo particularmente complicado, pelo que provavelmente estará tudo bem ;-)
Imagine que está a enviar uma carta pelo correio, mas está preocupado que esta possa ser danificada antes de chegar ao destinatário. Com base no conteúdo da carta, calcula uma soma de verificação CRC-32 e escreve-a no envelope. Quando o destinatário recebe a carta, pode também calcular a soma de verificação e ver se corresponde ao que escreveu. Se isso acontecer, a carta não foi danificada ou alterada ao longo do caminho.
A forma como o CRC-32 o faz é um processo de quatro etapas:
Passo 1: adicione algum espaço extra (preenchimento)
- O CRC acrescenta um pouco de espaço extra no final da mensagem (como se estivesse a embalar amendoins numa caixa).
- Isto ajuda a detetar erros mais facilmente.
Passo 2: A régua mágica (o polinómio)
- O CRC-32 utiliza uma "régua mágica" especial para medir os dados.
- Pense nesta régua como um padrão de saliências e sulcos (este é o polinómio, mas não se preocupe com esta palavra).
- A "régua" mais comum para o CRC-32 é um padrão fixo.
Passo 3: Deslizar a régua (processo de divisão)
- Agora o CRC faz deslizar a régua sobre a mensagem.
- Em cada ponto, verifica se as saliências e as ranhuras estão alinhadas.
- Se não estiverem alinhados, o CRC faz uma anotação (isto é feito usando um simples XOR, como ligar ou desligar interruptores).
- Continua a deslizar e a acionar interruptores até chegar ao fim.
Passo 4: O resultado final (a soma de verificação)
- Depois de deslizar a régua por toda a mensagem, fica com um pequeno número (32 bits de comprimento) que representa os dados originais.
- Este número é como uma impressão digital única para a mensagem.
- Esta é a soma de verificação CRC-32.
A versão apresentada na página é a variante CRC-32C, que deve ser a variante preferida, especialmente se estiver a utilizar um CPU com aceleração de hardware (SSE 4.2 e posterior) e não necessitar de compatibilidade com outras variantes.
Também tenho calculadoras para as outras variantes: