Como funcionam as somas de verificação
Números de cartão, IBANs, IDs fiscais e endereços cripto sempre possuem um ou dois dígitos extras ocultos, calculados a partir dos demais. Se você digitar um caractere errado, a aritmética não bate mais — e é assim que um validador consegue sinalizar um erro de digitação instantaneamente, offline, sem precisar consultar um banco ou a blockchain.
O que é uma soma de verificação?
Uma soma de verificação (ou dígito de verificação) é uma redundância intencional. Quando um número é emitido, um ou mais de seus dígitos não são escolhidos livremente: eles são calculados a partir dos demais por uma receita fixa. Qualquer pessoa que conheça essa receita pode depois recalcular esses dígitos e compará-los. Se coincidirem, o número é internamente consistente. Se não coincidirem, algo foi digitado errado, lido incorretamente ou corrompido.
Isso é tudo o que uma soma de verificação promete. Ela não diz nada sobre se a conta existe, quem a possui ou o que ela contém — um ponto que todo validador deste site repete, pois os dois conceitos são facilmente confundidos.
Exemplo prático 1 — Luhn, o algoritmo de números de cartão
O Luhn é usado pela Visa, Mastercard e pela maioria dos outros cartões de pagamento. Veja o exemplo clássico 7992 7398 713. Começando pelo dígito mais à direita, duplique cada segundo dígito; se a duplicação resultar em um número de dois dígitos, some os dígitos dele. Depois, some tudo.
| Dígito | Posição a partir da direita | Dobrado? | Conta como |
|---|---|---|---|
3 | Dígito de verificação | — | 3 |
1 | 2º a partir da direita | 1 × 2 = 2 | 2 |
7 | 3º | — | 7 |
8 | 4º | 8 × 2 = 16 → 1 + 6 | 7 |
9 | 5º | — | 9 |
3 | 6º | 3 × 2 = 6 | 6 |
7 | 7º | — | 7 |
2 | 8º | 2 × 2 = 4 | 4 |
9 | 9º | — | 9 |
9 | 10º | 9 × 2 = 18 → 1 + 8 | 9 |
7 | 11º | — | 7 |
A coluna à direita soma 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70. Setenta é divisível por dez, portanto o número é válido. Altere qualquer dígito e a soma deixará de ser múltipla de dez. Experimente no Validador de Cartão de Crédito — ele executa exatamente essa operação aritmética no seu dispositivo.
Exemplo prático 2 — uma soma ponderada (ISBN-10)
Muitos números de identificação nacional usam uma soma ponderada: multiplique cada dígito por um peso fixo, some os resultados e verifique o resto da divisão. O ISBN-10 é o exemplo mais claro. Para 0-306-40615-2, os pesos variam de 10 até 1:
0×10 + 3×9 + 0×8 + 6×7 + 4×6 + 0×5 + 6×4 + 1×3 + 5×2 + 2×1 = 132
132 é exatamente 11 × 12, portanto o resto da divisão por 11 é zero e o ISBN é válido. O CPF do Brasil, o PESEL da Polônia e dezenas de outros identificadores seguem o mesmo padrão com seus próprios pesos e módulos — razão pela qual um Validador ID em lote consegue verificar milhares deles em um segundo.
Exemplo prático 3 — IBAN e mod 97
Os números de conta bancária internacional usam o padrão ISO 7064 mod 97-10, um esquema mais robusto com dois dígitos de verificação. Veja o exemplo padrão GB82 WEST 1234 5698 7654 32:
- Verifique o comprimento conforme o país: um IBAN britânico tem 22 caracteres. ✓
- Mova os quatro primeiros caracteres para o final:
WEST12345698765432GB82. - Substitua cada letra por dois dígitos (A = 10 … Z = 35): W→32, E→14, S→28, T→29, G→16, B→11, resultando em
3214282912345698765432161182. - Divida esse número por 97. O resto da divisão deve ser exatamente 1 — e é.
Como 97 é um número primo e maior que qualquer troca de dois dígitos, o mod 97 detecta todo erro de um único caractere e toda transposição; apenas cerca de uma sequência aleatória em 97 passaria por acaso. O Validador de IBAN mostra se cada uma dessas etapas foi bem-sucedida ou não.
Endereços criptográficos: somas de verificação criadas a partir de hashes
Os endereços Bitcoin e Ethereum elevam o padrão, pois um erro de digitação neles envia dinheiro para ninguém, permanentemente. Os endereços Bitcoin legados (1…, 3…) usam Base58Check: a carga útil do endereço passa por SHA-256 duas vezes e os quatro primeiros bytes do resultado são anexados como soma de verificação. Um único caractere errado altera o hash completamente, então a probabilidade de um erro de digitação passar despercebido é de cerca de uma em quatro bilhões. Os endereços bc1… mais recentes usam Bech32 ou Bech32m, um código corretor de erros que garante a detecção de qualquer erro que afete até quatro caracteres. O EIP-55 do Ethereum oculta sua soma de verificação no padrão de letras maiúsculas e minúsculas.
O Validador de Endereços Bitcoin e o Validador de Endereços Ethereum implementam esses algoritmos no navegador e se verificam contra os vetores de teste oficiais a cada carregamento de página.
Resumo dos esquemas
| Esquema | Utilizado por | Detecta | Probabilidade de um erro aleatório passar despercebido |
|---|---|---|---|
| Luhn (módulo 10) | Cartões de crédito e débito, IMEI, muitos documentos de identidade nacionais | Todo erro de um único dígito e a maioria das trocas adjacentes | Cerca de 1 em 10 |
| ISO 7064 módulo 97-10 | IBAN, alguns números fiscais e de empresas | Cada erro isolado e cada transposição | Cerca de 1 em 97 |
| Soma ponderada, mod 10 ou 11 | ISBN-10, CPF do Brasil, PESEL da Polônia e muitos outros documentos de identificação | Erros isolados e a maioria das transposições | Cerca de 1 em 10 ou 1 em 11 |
| Base58Check (dupla SHA-256, 4 bytes) | Endereços legados do Bitcoin (1…, 3…) | Qualquer erro de digitação, com probabilidade esmagadora | Cerca de 1 em 4 bilhões |
| Bech32 / Bech32m (código BCH) | Endereços Bitcoin SegWit e Taproot (bc1…) | Garantido: qualquer erro afeta até 4 caracteres. | Menos de 1 em um bilhão. |
| EIP-55 (codificação keccak-256) | Endereços Ethereum | Erros de digitação, devido ao padrão de letras maiúsculas e minúsculas. | Muito baixo para entrada com letras maiúsculas e minúsculas misturadas. |
Por que um validador deve ser executado no seu dispositivo?
Tudo o que foi mencionado acima é aritmética com dígitos que você já possui. Não há motivo para um validador enviar um número de cartão, um CPF ou um endereço de carteira para um servidor — e há um ótimo motivo para não fazer isso. Todos os validadores deste site são executados localmente; a lista de ferramentas offline os agrupa, e nosso guia para verificar se uma ferramenta envia seus dados mostra como confirmar isso para qualquer site em vinte segundos.
Perguntas frequentes
Um checksum válido significa que o número é real ou está ativo?
Não. Um checksum apenas prova que os dígitos são internamente consistentes — que o número poderia existir. Ele não pode informar se a conta está aberta, quem é o proprietário ou qual é o saldo. Todos os validadores deste site indicam isso na página, pois essa distinção é importante.
Qual é a probabilidade de um número incorreto ainda ser aceito?
Depende do esquema. Um único dígito de verificação mod-10 permite que cerca de 1 erro aleatório em cada 10 seja aceito; o mod 97 do IBAN permite cerca de 1 em 97; uma soma de verificação Base58Check de 4 bytes permite cerca de 1 em 4 bilhões. A propriedade importante é que os erros comuns dos humanos — um dígito errado, dois dígitos trocados — são detectados por todos eles.
Por que alguns identificadores não possuem soma de verificação?
Esquemas mais antigos ou simples foram projetados para serem consultados em um registro em vez de verificados offline, e alguns sistemas de numeração simplesmente precedem essa prática. Para esses casos, um validador só pode verificar o comprimento e o formato.
É seguro colar meu número de cartão ou documento de identidade em um validador?
Só se a validação for executada no seu dispositivo. Uma soma de verificação é um cálculo aritmético com dígitos que você já possui, portanto não há motivo legítimo para um validador enviá-los a um servidor. Você pode confirmar se uma ferramenta é executada localmente com o teste em modo avião descrito no nosso guia para verificar se uma ferramenta envia seus dados.
Qual é a diferença entre soma de verificação, hash e criptografia?
Uma soma de verificação é um pequeno dígito de verificação projetado para detectar erros de digitação acidentais. Um hash criptográfico é uma 'impressão digital' longa projetada para que até uma alteração intencional seja detectável e o original não possa ser recuperado. A criptografia transforma dados para que só possam ser lidos com uma chave. O Base58Check usa um hash para criar sua soma de verificação, e é por isso que é tão difícil enganar por acidente.