Validador do Algoritmo de Luhn
O Luhn apenas valida o dígito de verificação, não se o cartão está ativo.
O algoritmo de Luhn (ISO/IEC 7812-1) é a verificação que protege números de cartão de crédito, identificadores de dispositivos IMEI, SINs canadenses, NPIs dos EUA e uma série de outros esquemas numéricos contra erros de digitação de um dígito. Cole uma sequência de dígitos, espaços e traços são ignorados, e o validador mostra se o número é válido e percorre as etapas de duplicação e soma para que você possa verificar manualmente, se desejar.
Como a verificação de Luhn é calculada
-
1
Remover não-dígitos
Espaços, traços e pontos são removidos. Apenas dígitos de 0 a 9 contam.
-
2
Dobrar cada segundo dígito da direita
Começando com o penúltimo, cada dígito alternado é dobrado.
-
3
Somar os dígitos de cada valor dobrado
Se dobrar resulta em 14, adicione 1 + 4 = 5. Equivalente a subtrair 9 de qualquer dobro ≥ 10.
-
4
Totalizar todos os valores resultantes
Adicione os dígitos dobrados e reduzidos mais os dígitos não tocados.
-
5
Verificar divisibilidade por 10
Se o total termina em 0, o número é válido. Caso contrário, é inválido.
Exemplo prático
Verifique 4539 1488 0343 6467:
| Pos (direita→esquerda) | Dígito | Duplicado? | Valor |
|---|---|---|---|
| 1 | 7 | não | 7 |
| 2 | 6 | sim | 12 → 3 |
| 3 | 4 | não | 4 |
| 4 | 6 | sim | 12 → 3 |
| 5 | 3 | não | 3 |
| 6 | 4 | sim | 8 |
| 7 | 3 | não | 3 |
| 8 | 0 | sim | 0 |
| 9 | 8 | não | 8 |
| 10 | 8 | sim | 16 → 7 |
| 11 | 4 | não | 4 |
| 12 | 1 | sim | 2 |
| 13 | 9 | não | 9 |
| 14 | 3 | sim | 6 |
| 15 | 5 | não | 5 |
| 16 | 4 | sim | 8 |
Total: 80. 80 mod 10 = 0 → válido.
Onde o Luhn é usado
| Sistema | Comprimento | Protegido pelo Luhn? |
|---|---|---|
| Visa, Mastercard, Discover | 13–19 dígitos | sim |
| American Express | 15 dígitos | sim |
| IMEI (ID de dispositivo GSM) | 15 dígitos | sim |
| Seguro Social Canadense | 9 dígitos | sim |
| Identificador Nacional dos EUA | 10 dígitos | sim |
| ID Israelense (Teudat Zehut) | 9 dígitos | sim |
| ISBN-13 | 13 dígitos | não (usa mod 10 com pesos 1,3) |
O que o Luhn detecta e ignora
- Detecta: todos os erros de um dígito, a maioria (mas não todos) das transposições de dígitos adjacentes.
- Ignora: a transposição 09 ↔ 90 e vários pares semelhantes. É uma verificação de erro de digitação, não uma verificação de segurança.
- Não é uma característica de segurança. Um número válido pelo Luhn é fácil de gerar. A validação de PAN em gateways de pagamento usa faixas de emissor, CVV, AVS e 3-D Secure, não apenas Luhn.
Perguntas frequentes
Não. O Luhn apenas verifica se o número está matematicamente bem formado. Não diz nada sobre se o cartão foi emitido, tem fundos ou é roubado. A validação real acontece no emissor durante a autorização.
Sim, o último dígito é o dígito de verificação e pode sempre ser escolhido para tornar a soma divisível por 10. É assim que geradores de IMEI e números de cartão de teste funcionam.
Ele captura cada substituição de um dígito e a maioria das transposições de dígitos adjacentes, mas alguns pares (como 09 ↔ 90) mantêm a verificação inalterada. Esquemas mais robustos (ISBN-13, Verhoeff, Damm) trocam complexidade por cobertura extra de erros.
O validador roda inteiramente no seu navegador, então nada é transmitido, mas colar dados de PAN ao vivo em qualquer lugar que você não precise é um mau hábito. Use números de teste (por exemplo, 4242 4242 4242 4242) ao experimentar.
O Luhn funciona em qualquer comprimento, mas é padronizado para esquemas específicos (geralmente 9–19 dígitos). O validador não limita o comprimento.
Ferramentas relacionadas
Gerador de cards CSS
Crie um card com seu título, texto e link opcional. Ajuste cores, borda, espaçamento, sombra e efeito ao passar o mouse. Depois copie ou baixe o HTML e o CSS.
Gerador de textura de ruído
Gere uma textura de ruído em SVG que se repete sem emendas, com opacidade, frequência do grão, tipo de ruído e cor de fundo ajustáveis, e copie o CSS já pronto.
Gerador de Configuração Webpack
Crie um webpack.config.js para webpack 5 a partir de um formulário curto: defina o entry, a pasta de saída e o modo, e ative TypeScript, Babel, um loader CSS, HtmlWebpackPlugin e um servidor de desenvolvimento.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Desofuscador de JavaScript
Desofusque JavaScript minificado ou empacotado com renomeação de variáveis, decodificação de arrays de strings, reversão de achatamento de fluxo de controle e embelezamento.
Ferramenta disponível em outros idiomas
- أداة فحص خوارزمية Luhn [AR]
- Verificador del Algoritmo de Luhn [ES]
- Luhn-algoritme-checker [NL]
- Luhn 알고리즘 검사기 [KO]
- Vérificateur d'algorithme de Luhn [FR]
- Trình kiểm tra thuật toán Luhn [VI]
- เครื่องตรวจสอบอัลกอริทึมของ Luhn [TH]
- Walidator algorytmu Luhna [PL]
- Luhn-algoritmens kontrollverktyg [SV]
- Pemeriksa Algoritma Luhn [ID]
- Luhnアルゴリズムチェッカー [JA]
- Luhn-Algorithmus-Prüfer [DE]
- Luhn Algorithm Checker [EN]
- Controllore dell'Algoritmo di Luhn [IT]
- Проверка по алгоритму Луна [RU]
- Luhn Algoritma Kontrolcüsü [TR]
- Luhn 算法校验工具 [ZH]