Algoritmo de Validação de CPF: Como Funciona
Entenda o algoritmo de validação de CPF passo a passo. Guia técnico completo com exemplos práticos e implementação.
O algoritmo de validação de CPF é baseado no cálculo de dígitos verificadores usando multiplicação e módulo 11. É um método matemático simples mas eficaz para detectar erros de digitação e números inventados.
Neste guia técnico, você aprenderá passo a passo como funciona o algoritmo, como implementá-lo em código e entenderá a matemática por trás da validação de CPF.
Fundamentos do Algoritmo
O algoritmo usa o método de módulo 11 para calcular dois dígitos verificadores. Esse método é amplamente usado em documentos brasileiros (CPF, CNPJ, títulos bancários) por sua eficácia em detectar erros.
Os 9 primeiros dígitos do CPF são o número base. Os 2 últimos dígitos são calculados através de operações matemáticas aplicadas ao número base.
Qualquer alteração nos 9 primeiros dígitos resulta em dígitos verificadores diferentes. Isso permite detectar erros de digitação, transposição de números e números inventados.
Cálculo do Primeiro Dígito
Passo 1: Multiplique cada um dos 9 primeiros dígitos por uma sequência decrescente de 10 a 2. Exemplo: para CPF 123.456.789-XX, calcule 1×10, 2×9, 3×8, 4×7, 5×6, 6×5, 7×4, 8×3, 9×2.
Passo 2: Some todos os resultados. No exemplo: 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 = 210.
Passo 3: Calcule o resto da divisão por 11. No exemplo: 210 ÷ 11 = 19 com resto 1. Passo 4: Se resto < 2, o dígito é 0. Caso contrário, o dígito é 11 - resto. No exemplo: 1 < 2, então primeiro dígito = 0.
- Multiplicar dígitos por 10, 9, 8, 7, 6, 5, 4, 3, 2
- Somar todos os produtos
- Dividir soma por 11 e pegar o resto
- Se resto < 2: dígito = 0
- Se resto ≥ 2: dígito = 11 - resto
- Primeiro dígito verificador obtido
Cálculo do Segundo Dígito
O segundo dígito é calculado de forma similar, mas usando os 9 dígitos originais mais o primeiro dígito verificador (total de 10 dígitos).
Passo 1: Multiplique os 10 dígitos por uma sequência decrescente de 11 a 2. Exemplo: para 123.456.789-0X, calcule 1×11, 2×10, 3×9, 4×8, 5×7, 6×6, 7×5, 8×4, 9×3, 0×2.
Passo 2: Some os resultados: 11 + 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 = 255. Passo 3: Resto de 255 ÷ 11 = 2. Passo 4: Como 2 ≥ 2, segundo dígito = 11 - 2 = 9.
Exemplo Completo
Vamos validar o CPF 529.982.247-25. Primeiro dígito: (5×10 + 2×9 + 9×8 + 9×7 + 8×6 + 2×5 + 2×4 + 4×3 + 7×2) = 295. Resto de 295÷11 = 9. Dígito = 11 - 9 = 2. ✓
Segundo dígito: (5×11 + 2×10 + 9×9 + 9×8 + 8×7 + 2×6 + 2×5 + 4×4 + 7×3 + 2×2) = 295. Resto de 295÷11 = 9. Dígito = 11 - 9 = 2. Mas o CPF informa 5. ✗
Os dígitos calculados (22) não correspondem aos informados (25), portanto o CPF 529.982.247-25 é inválido.
Casos Especiais
CPFs com todos os dígitos iguais (111.111.111-11, 222.222.222-22, etc.) são sempre inválidos. O algoritmo foi projetado para rejeitar esses números.
Quando o resto da divisão por 11 é 0 ou 1, o dígito verificador é 0. Isso é uma regra especial do algoritmo para evitar dígitos verificadores de dois algarismos.
O algoritmo detecta 100% dos erros de digitação de um único dígito e mais de 95% dos erros de transposição de dígitos adjacentes.
Implementação em Código
Para implementar em código, primeiro remova formatação (pontos e hífen) e valide que tem exatamente 11 dígitos numéricos.
Verifique se não são todos dígitos iguais. Depois, implemente o cálculo dos dois dígitos verificadores usando loops para as multiplicações e somas.
Compare os dígitos calculados com os dois últimos dígitos do CPF informado. Se forem iguais, o CPF é válido. Caso contrário, é inválido.
- Remover formatação (pontos e hífen)
- Validar que tem 11 dígitos
- Verificar se não são todos iguais
- Calcular primeiro dígito verificador
- Calcular segundo dígito verificador
- Comparar com dígitos informados
Por Que Módulo 11
O módulo 11 foi escolhido porque 11 é um número primo, o que maximiza a capacidade de detectar erros. Números primos têm propriedades matemáticas que tornam a detecção de erros mais eficiente.
Com módulo 11, o algoritmo detecta todos os erros de digitação de um único dígito e a maioria dos erros de transposição (trocar dois dígitos de lugar).
Outros documentos brasileiros também usam módulo 11 (CNPJ, títulos bancários) pela mesma razão: é um método simples, eficiente e amplamente testado.
Limitações do Algoritmo
O algoritmo não impede que alguém use CPF de outra pessoa. Ele apenas verifica se o número é matematicamente válido.
Não detecta 100% dos erros de transposição. Alguns casos específicos de troca de dígitos podem resultar em CPF ainda válido (mas diferente do original).
Não verifica se o CPF existe na Receita Federal. Para isso, é necessário consultar sistemas oficiais através de APIs ou serviços autorizados.
Conclusão
O algoritmo de validação de CPF é elegante e eficiente, usando matemática simples para detectar a maioria dos erros. Entender como funciona ajuda a implementar validação correta em sistemas.
Valide CPFs automaticamente com nossa ferramenta. Implementamos o algoritmo oficial para garantir validação precisa e confiável.