Como Calcular CPF Passo a Passo – geradorcpfcnpj.com.br

O CPF (Cadastro de Pessoas Físicas) utiliza um algoritmo matemático baseado em módulo 11 para gerar seus dígitos verificadores. Essa técnica é utilizada para evitar erros de digitação e identificar números inválidos.

Se você trabalha com desenvolvimento de software, QA, homologação ou integração de sistemas, entender esse algoritmo é fundamental para gerar e validar CPFs corretamente.

Estrutura do CPF

O CPF possui 11 dígitos:

123.456.789-09

Os nove primeiros dígitos formam a base do documento. Os dois últimos representam os dígitos verificadores.

Como calcular o primeiro dígito

Considere o CPF base:

123456789

Multiplique cada posição pelos pesos de 10 até 2.

    1×10
    2×9
    3×8
    4×7
    5×6
    6×5
    7×4
    8×3
    9×2
    

A soma dos resultados é 210.

Aplicamos:

210 % 11 = 1

Quando o resultado for menor que 2, o dígito verificador será 0.

Como calcular o segundo dígito

Agora acrescentamos o primeiro dígito:

1234567890

Os pesos passam a ser:

11 10 9 8 7 6 5 4 3 2

Após o cálculo obtemos o segundo dígito verificador.

Exemplo em JavaScript


    function calcularDigitoCPF(cpfParcial){
    
      let soma = 0;
      let peso = cpfParcial.length + 1;
    
      for(let i=0;i<cpfParcial.length;i++){
        soma += Number(cpfParcial[i]) * peso--;
      }
    
      const resto = soma % 11;
    
      return resto < 2 ? 0 : 11 - resto;
    }
    
    function validarCPF(cpf){
    
      cpf = cpf.replace(/\D/g,'');
    
      const dv1 = calcularDigitoCPF(cpf.substring(0,9));
      const dv2 = calcularDigitoCPF(cpf.substring(0,10));
    
      return cpf.endsWith(`${dv1}${dv2}`);
    }
    

Perguntas Frequentes

Um CPF válido pertence a alguém?

Não. Um CPF matematicamente válido apenas atende às regras do algoritmo.

Posso utilizar um CPF gerado em produção?

Não. Os números gerados devem ser utilizados apenas para testes e homologação.

Por que o CPF possui dígitos verificadores?

Eles ajudam a detectar erros de digitação e inconsistências em cadastros.