Calculadora de código hash CRC-32B
Publicado: 17 de fevereiro de 2025 às 18:29:38 UTC
Calculadora de código hash que utiliza a função hash CRC-32B (Cyclic Redundancy Check 32 bits, variante B) para calcular um código hash com base na introdução de texto ou no carregamento de ficheiros.CRC-32B 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-32B, que na verdade é apenas uma particularidade na linguagem PHP que inverte os bits (little-endian vs. big-endian no CRC-32 original).
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-32B
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-32B, que é basicamente uma particularidade do PHP que inverte a ordem dos bits (little-endian vs big-endian). Provavelmente só deverá utilizar esta versão se precisar especificamente de compatibilidade com outra aplicação PHP que a utilize.
Também tenho calculadoras para as outras variantes: