Miklix

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.

Esta página foi traduzida automaticamente do inglês para a tornar acessível ao maior número possível de pessoas. Infelizmente, a tradução automática ainda não é uma tecnologia aperfeiçoada, pelo que podem ocorrer erros. Se preferir, pode ver a versão original em inglês aqui:

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.


Calcular o novo código Hash

Os dados enviados ou os ficheiros carregados através deste formulário só serão mantidos no servidor durante o tempo necessário para gerar o código hash solicitado. Serão eliminados imediatamente antes de o resultado ser devolvido ao seu browser.

Dados de entrada:



O texto enviado é codificado em UTF-8. Uma vez que as funções de hash operam em dados binários, o resultado será diferente do que se o texto estivesse noutra codificação. Se precisar de calcular um hash de um texto numa codificação específica, deve carregar um ficheiro.



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:

Partilhar no BlueskyPartilhar no FacebookPartilhar no LinkedInPartilhar no TumblrPartilhar em XPartilhar no LinkedInFixar no Pinterest

Mikkel Bang Christensen

Sobre o autor

Mikkel Bang Christensen
Mikkel é o criador e proprietário do miklix.com. Tem mais de 20 anos de experiência como programador informático/desenvolvedor de software profissional e trabalha atualmente a tempo inteiro para uma grande empresa europeia de TI. Quando não está a escrever no blogue, dedica o seu tempo livre a um vasto leque de interesses, passatempos e actividades, que podem, em certa medida, refletir-se na variedade de tópicos abordados neste sítio Web.