Entenda a Fórmula do CPF: Como Funciona o Algoritmo de Validação

Descubra os segredos por trás do algoritmo matemático que valida os números de CPF no Brasil

Algoritmo Matemático Validação Oficial Implementação Prática

O que é o CPF e Por Que Tem uma Fórmula?

O Cadastro de Pessoas Físicas (CPF) é um documento fundamental no Brasil, criado pela Receita Federal para identificar contribuintes. Mas você sabia que por trás de cada número de CPF existe uma fórmula matemática complexa que garante sua validade?

A fórmula do CPF foi desenvolvida para prevenir erros de digitação e dificultar a criação de números falsos. Através de dois dígitos verificadores, o sistema consegue detectar mais de 99% dos erros comuns de entrada de dados.

Estrutura do CPF: Entendendo os 11 Dígitos

123.456.789-09
123.456.789
9 primeiros dígitos
Número sequencial
0
1º dígito verificador
Calculado pela fórmula
9
2º dígito verificador
Calculado pela fórmula

A Fórmula Matemática do CPF

Cálculo do Primeiro Dígito Verificador

  1. Multiplique cada um dos 9 primeiros dígitos pela sequência decrescente de 10 a 2:
CPF: 1 2 3 4 5 6 7 8 9
Multiplicadores: 10 9 8 7 6 5 4 3 2
Produtos: 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 = 210
  1. Divida o resultado por 11 e pegue o resto: 210 ÷ 11 = 19, resto 1
  2. Se o resto for menor que 2, o dígito é 0. Senão, o dígito é 11 - resto: 11 - 1 = 10
  3. Como o resultado é 10 (dois dígitos), o primeiro dígito verificador é 0

Cálculo do Segundo Dígito Verificador

  1. Use os 9 dígitos originais + o primeiro dígito verificador:
CPF: 1 2 3 4 5 6 7 8 9 0
Multiplicadores: 11 10 9 8 7 6 5 4 3 2
Produtos: 11 + 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 = 255
  1. Divida por 11: 255 ÷ 11 = 23, resto 2
  2. Como o resto é ≥ 2: 11 - 2 = 9
  3. O segundo dígito verificador é 9

Implementação em Código

JavaScript

function validarCPF(cpf) {
    // Remove pontos e traços
    cpf = cpf.replace(/[^\d]/g, '');
    
    // Verifica se tem 11 dígitos
    if (cpf.length !== 11) return false;
    
    // Verifica se todos os dígitos são iguais
    if (/^(\d)\1{10}$/.test(cpf)) return false;
    
    // Calcula o primeiro dígito verificador
    let soma = 0;
    for (let i = 0; i < 9; i++) {
        soma += parseInt(cpf[i]) * (10 - i);
    }
    let resto = soma % 11;
    let digito1 = resto < 2 ? 0 : 11 - resto;
    
    // Verifica o primeiro dígito
    if (parseInt(cpf[9]) !== digito1) return false;
    
    // Calcula o segundo dígito verificador
    soma = 0;
    for (let i = 0; i < 10; i++) {
        soma += parseInt(cpf[i]) * (11 - i);
    }
    resto = soma % 11;
    let digito2 = resto < 2 ? 0 : 11 - resto;
    
    // Verifica o segundo dígito
    return parseInt(cpf[10]) === digito2;
}

PHP

function validarCPF($cpf) {
    // Remove caracteres não numéricos
    $cpf = preg_replace('/[^0-9]/', '', $cpf);
    
    // Verifica se tem 11 dígitos
    if (strlen($cpf) != 11) return false;
    
    // Verifica se todos os dígitos são iguais
    if (preg_match('/(\d)\1{10}/', $cpf)) return false;
    
    // Calcula o primeiro dígito verificador
    $soma = 0;
    for ($i = 0; $i < 9; $i++) {
        $soma += intval($cpf[$i]) * (10 - $i);
    }
    $resto = $soma % 11;
    $digito1 = $resto < 2 ? 0 : 11 - $resto;
    
    // Verifica o primeiro dígito
    if (intval($cpf[9]) != $digito1) return false;
    
    // Calcula o segundo dígito verificador
    $soma = 0;
    for ($i = 0; $i < 10; $i++) {
        $soma += intval($cpf[$i]) * (11 - $i);
    }
    $resto = $soma % 11;
    $digito2 = $resto < 2 ? 0 : 11 - $resto;
    
    // Verifica o segundo dígito
    return intval($cpf[10]) == $digito2;
}

Calculadora Interativa da Fórmula do CPF

Teste a Fórmula do CPF

Digite os 9 primeiros dígitos e veja como os dígitos verificadores são calculados

Perguntas Frequentes sobre a Fórmula do CPF

Por que o CPF tem dígitos verificadores?

Os dígitos verificadores servem para detectar erros de digitação e prevenir a criação de números falsos. Eles funcionam como uma "impressão digital" matemática que valida a autenticidade do número.

Quantos CPFs válidos existem?

Teoricamente, existem cerca de 900 milhões de combinações válidas de CPF (de 000.000.001-91 a 999.999.999-XX), mas nem todas são utilizadas pela Receita Federal.

É possível gerar CPFs válidos aleatoriamente?

Sim, é possível gerar números matematicamente válidos usando a fórmula. No entanto, isso não significa que sejam CPFs reais ou ativos na Receita Federal. Números gerados devem ser usados apenas para testes.

Por que alguns números como 111.111.111-11 são inválidos?

A Receita Federal considera inválidos os CPFs onde todos os dígitos são iguais, mesmo que matematicamente possam passar na fórmula de validação. Isso é uma regra adicional de segurança.

Ferramentas Relacionadas

Conclusão

A fórmula do CPF é um exemplo brilhante de como a matemática pode ser aplicada para resolver problemas práticos de identificação e validação. Compreender seu funcionamento não apenas satisfaz a curiosidade, mas também é essencial para desenvolvedores que trabalham com sistemas brasileiros.

Lembre-se sempre de usar números de CPF gerados apenas para desenvolvimento e testes, respeitando as leis e regulamentações da Receita Federal. Para projetos reais, sempre utilize CPFs fornecidos pelos próprios usuários ou sistemas oficiais.