Hash e Segurança

Gerador de Hash CRC32

Transforme qualquer texto em seu checksum CRC-32 de 8 caracteres instantaneamente.

Avalie esta ferramenta

Como usar Gerador de Hash CRC32

  1. Digite ou cole seu texto na caixa.
  2. Escolha a variante — CRC-32B é a padrão, a que você quase sempre vai querer.
  3. O checksum aparece enquanto você digita; clique em Copiar para obtê-lo.

Sobre Gerador de Hash CRC32

O CRC-32 é uma verificação de redundância cíclica, não um hash no sentido criptográfico. Ele trata seus dados como um número binário enorme, divide-o por um polinômio fixo e mantém o resto — 32 bits, escritos como 8 caracteres hexadecimais. Essa matemática é o que o torna bom em sua verdadeira função: detectar danos acidentais, e erros em rajada em particular, quando uma sequência de bits consecutivos é invertida por um cabo com defeito, um disco arranhado ou um link de rádio ruidoso. É a verificação embutida em zip, gzip, PNG e quadros Ethernet.

Um detalhe confunde as pessoas o tempo todo. O PHP expõe dois nomes, e eles não produzem a mesma resposta para a mesma entrada. O crc32b é o CRC-32 padrão, que corresponde ao zip, gzip e PNG — é esse que você quer quando está comparando com um checksum que outra ferramenta imprimiu. O crc32 é a variante BZIP2, que usa o mesmo polinômio, mas uma ordenação de bits diferente, de modo que os dígitos saem completamente diferentes. Se seu checksum "não bate", é quase sempre por isso. A terceira opção, CRC-32C, usa o polinômio Castagnoli: tem propriedades de detecção de erros mensuravelmente melhores e é implementada diretamente em hardware pelo conjunto de instruções SSE4.2, motivo pelo qual sistemas de armazenamento intensivo como iSCSI, ext4 e Btrfs o escolheram.

Um CRC não é uma ferramenta de segurança e não pode ser transformado em uma. É uma função linear, o que significa que um atacante que altera seus dados pode calcular exatamente quais bytes ajustar para voltar ao checksum original — sem precisar de força bruta, apenas aritmética. Um CRC informa que o arquivo sobreviveu à jornada; não informa nada sobre se alguém o adulterou no caminho. Para isso, você precisa de um hash criptográfico real, como o SHA-256, e até o MD5 é muito mais forte do que um CRC, apesar de ele próprio estar quebrado.

Perguntas frequentes

Por que CRC-32 e CRC-32B dão resultados diferentes?

São variantes diferentes. O CRC-32B é o padrão usado por zip, gzip e PNG; o CRC-32 no PHP é a variante BZIP2, que ordena os bits de forma diferente. Mesma entrada, saída diferente — escolha CRC-32B, a menos que precise especificamente do BZIP2.

Por que um CRC-32 sempre tem 8 caracteres?

O resultado sempre tem 32 bits, e cada caractere hexadecimal carrega 4 bits, então todo CRC-32 tem exatamente 8 caracteres, não importa o tamanho da entrada.

Posso usar CRC-32 para senhas ou assinaturas?

Não — nunca. O CRC-32 foi projetado para detectar erros acidentais, não deliberados, e é trivial de forjar: qualquer pessoa pode ajustar alguns bytes para forçar o checksum que quiser. Use bcrypt para senhas e SHA-256 para assinaturas.

Para que serve o CRC-32C?

O CRC-32C usa o polinômio Castagnoli, que detecta mais padrões de erro, e CPUs modernas o calculam em hardware via SSE4.2. Essa combinação é o motivo pelo qual iSCSI, ext4 e Btrfs o usam para verificações de integridade em disco e em trânsito.

Meu texto é enviado para algum lugar?

Seu texto é enviado ao nosso servidor para ter seu checksum calculado, porque os navegadores não conseguem calcular CRC-32. Ele é processado e imediatamente descartado — nunca registrado, nunca armazenado.