Miklix

Calculadora de código de hash CRC-32

Publicado: 17 de fevereiro de 2025 às 18:12:11 UTC

Calculadora de código de hash que utiliza a função de hash CRC-32 (Cyclic Redundancy Check 32 bit) para calcular um código de 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-32 Hash Code Calculator

O Cyclic Redundancy Check (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 de hash criptográfico, o CRC-32 é frequentemente referido como um hash devido à sua capacidade de produzir uma saída de tamanho fixo (32 bits) a partir de uma entrada de comprimento variável.

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-32

Não sou matemático, mas vou tentar explicar esta função de hash com uma analogia simples. Ao contrário de muitas das funções de hash criptográficas, não é um algoritmo particularmente complicado, por isso provavelmente não vai haver problema ;-)

Imagine que está a enviar uma carta pelo correio, mas teme que esta se danifique antes de chegar ao destinatário. Com base no conteúdo da carta, calcula uma soma de controlo CRC-32 e escreve-a no envelope. Quando o destinatário recebe a carta, pode também calcular a soma de controlo e verificar se corresponde ao que escreveu. Se corresponder, a carta não foi danificada ou alterada durante o percurso.

A forma como o CRC-32 faz isso é um processo de quatro etapas:

Passo 1: Adicionar algum espaço extra (Padding)

  • O CRC adiciona um pouco mais de espaço no final da mensagem (como se estivesse a empacotar amendoins numa caixa).
  • Isto ajuda-o a detetar erros mais facilmente.

Passo 2: A régua mágica (o polinómio)

  • O CRC-32 usa uma "régua mágica" especial para medir os dados.
    • Pense nesta régua como um padrão de saliências e ranhuras (isto é o polinómio, mas não se preocupe com essa palavra).
    • A "régua" mais comum para CRC-32 é um padrão fixo.

Passo 3: Deslizar a régua (processo de divisão)

  • Agora o CRC desliza a régua pela mensagem.
    • Em cada ponto, verifica se as saliências e ranhuras estão alinhadas.
    • Se não estiverem alinhados, o CRC faz uma anotação (isto é feito usando XOR simples, como ligar ou desligar interruptores).
    • Continua a deslizar e a inverter os interruptores até chegar ao fim.

Passo 4: O resultado final (o checksum)

  • Depois de deslizar a régua por toda a mensagem, fica-se com um pequeno número (32 bits) que representa os dados originais.
    • Este número é como uma impressão digital única para a mensagem.
    • Esta é a soma de controlo CRC-32.

A versão apresentada na página é a função CRC-32 original, que é a que deve ser utilizada para uma melhor compatibilidade com outros sistemas.

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.