Calculadora de dígito verificador de Luhn
Entradas
| Modo | Calcular dígito verificador |
|---|---|
| Número | 7992739871 |
Calculadora de dígito verificador de Luhn
Calcule o dígito verificador de Luhn (módulo 10) de um número ou verifique se um número passa na soma de verificação de Luhn. Funciona com qualquer sequência de dígitos: números de identificação, IMEI e códigos de barras.
Entradas
Número
compute_hint
Resultados
Insira um valor para ver os resultados.
Resultado
Dígito verificador de Luhn
O algoritmo de Luhn — também conhecido como algoritmo módulo 10 — é uma fórmula de soma de verificação que protege números identificadores longos contra erros de digitação acidentais. Ele funciona anexando um dígito adicional, o dígito verificador, derivado de todos os demais dígitos. Uma verificação aritmética rápida sobre o número completo revela então se ele é internamente coerente. Hans Peter Luhn descreveu o método na IBM em 1954, e hoje ele é padronizado como parte da norma ISO/IEC 7812.
Esta calculadora tem dois modos: calcular um dígito verificador para um número que ainda não o possui e validar se um número completo satisfaz a condição de Luhn. Ela opera com qualquer sequência de dígitos, então serve igualmente para números de identificação, identificadores IMEI de dispositivos e códigos de barras.
Como o algoritmo funciona
Começando pelo dígito da direita e avançando para a esquerda, cada segundo dígito é dobrado. Quando a duplicação produz um número de dois algarismos, seus dígitos são somados — o equivalente a subtrair 9. Todos os valores resultantes são então somados. Para uma carga sem dígito verificador, o dígito verificador é:
onde é a soma ponderada. Um número completo é válido quando essa mesma soma ponderada, desta vez incluindo o dígito verificador, é múltiplo de 10.
Exemplo resolvido — 7992739871
Considere a carga 7992739871 (o exemplo neutro da especificação do algoritmo). Numere os dígitos a partir da direita e dobre cada segundo, começando na posição 1:
| Posição (da direita) | Dígito | Passo | Valor |
|---|---|---|---|
| 1 | 1 | ×2 | 2 |
| 2 | 7 | — | 7 |
| 3 | 8 | ×2 | 16 → 7 |
| 4 | 9 | — | 9 |
| 5 | 3 | ×2 | 6 |
| 6 | 7 | — | 7 |
| 7 | 2 | ×2 | 4 |
| 8 | 9 | — | 9 |
| 9 | 9 | ×2 | 18 → 9 |
| 10 | 7 | — | 7 |
Os valores somam . O dígito verificador é, portanto:
Anexando-o, obtém-se o número completo 79927398713. Para validar esse número completo, a soma ponderada dá 70, que é múltiplo de 10 — então ele passa.
Quais erros ele detecta
O único dígito verificador não consegue detectar todos os erros, mas é ajustado aos erros que as pessoas de fato cometem ao copiar números longos:
- Qualquer erro de um único dígito — um dígito digitado errado — é sempre detectado.
- A maioria das transposições de dois dígitos adjacentes é detectada. A única exceção é trocar o par 09 por 90 (e vice-versa), porque ambos produzem a mesma contribuição ponderada.
Como usa uma soma ponderada na base 10, o esquema de Luhn é uma verificação de integridade leve, não um código corretor de erros: ele pode dizer que algo está errado, mas não qual dígito está. Para correção de erros, ferramentas da teoria da codificação como uma Calculadora de Distância de Hamming ou um Calculadora de Checksum CRC são o próximo passo adequado.
Onde os dígitos verificadores de Luhn aparecem
O esquema módulo 10 está embutido em muitos formatos de identificador do dia a dia:
- Os números IMEI, os identificadores de 15 dígitos dos telefones celulares, terminam em um dígito verificador de Luhn.
- Os números de cartões de pagamento e de fidelidade trazem um dígito de Luhn final para que um terminal de ponto de venda possa rejeitar um erro de digitação óbvio antes de contatar a rede.
- Os números nacionais e fiscais de identificação de vários países incluem um dígito de Luhn.
- Os códigos de barras de produtos e de envio usam Luhn ou variantes de módulo 10 estreitamente relacionadas.
O que passar na verificação significa e o que não significa
O algoritmo de Luhn é uma fórmula pública sem chave secreta. Passar nele prova apenas que os dígitos de um número são coerentes entre si — nunca que o número tenha sido de fato emitido, registrado ou pertença a alguém. Qualquer pessoa pode escrever uma sequência de dígitos que satisfaça a verificação.
Por isso o Luhn é usado como filtro inicial rápido: rejeitar de imediato as entradas claramente digitadas de forma errada e deixar o restante para uma consulta oficial. É um auxílio à qualidade dos dados, e esta ferramenta serve para entender como a soma de verificação funciona e para testar sequências de dígitos arbitrárias, como identificadores, números IMEI e códigos de barras. Para uma verificação de integridade com chave e resistente a adulteração, usaria-se uma função hash criptográfica; por que o comprimento da soma de verificação importa ali é mostrado pela Calculadora de Probabilidade de Colisão de Hash.
Perguntas frequentes (FAQ)
O que é o algoritmo de Luhn?
O algoritmo de Luhn, também chamado de algoritmo módulo 10, é uma fórmula simples de soma de verificação publicada pelo cientista da IBM Hans Peter Luhn em 1954 e padronizada como parte da ISO/IEC 7812. Ele anexa a um número um dígito extra — o dígito verificador — para que um teste aritmético curto detecte os erros de digitação mais comuns.
Para calcular o dígito verificador, comece pelo dígito mais à direita da carga e dobre cada segundo dígito. Se a duplicação resultar em um número de dois algarismos, some seus dígitos (ou, de modo equivalente, subtraia 9). Some todos os valores obtidos, e o dígito verificador é (10 − soma mod 10) mod 10. Um número completo é válido quando essa mesma soma ponderada, incluindo o dígito verificador, é múltiplo de 10.
Onde o dígito verificador de Luhn é usado?
Os dígitos verificadores de Luhn aparecem em muitos números identificadores. O IMEI que identifica um telefone celular usa um dígito de Luhn, assim como os números de conta de cartões de pagamento e de fidelidade, alguns números nacionais de identificação e diversos códigos de barras de produtos e de envio.
O algoritmo foi projetado apenas para detectar erros acidentais: um único dígito digitado errado ou a maioria dos casos de troca de dois dígitos adjacentes. É um auxílio à integridade dos dados em formulários e leitores, não uma forma de provar que um identificador é autêntico ou está registrado.
Passar no teste de Luhn significa que um número é real?
Não. O algoritmo de Luhn é uma fórmula pública sem chave secreta, então passar nele significa apenas que os dígitos são internamente consistentes — não que o número tenha sido emitido para alguém. Qualquer pessoa pode construir uma sequência de dígitos que satisfaça a verificação.
Por isso o Luhn é usado como filtro inicial para rejeitar entradas claramente digitadas de forma errada antes de uma consulta oficial mais lenta, nunca como prova de validade ou de titularidade. Esta ferramenta serve para entender como a soma de verificação funciona e para testar sequências de dígitos arbitrárias, como identificadores, números IMEI e códigos de barras.