Tecnologia Guia

CPF: como funciona a validação e como gerar números para testes de sistema

Todo desenvolvedor já precisou de um CPF válido para testar um formulário. Este guia explica o algoritmo por trás dos 2 dígitos verificadores — e como gerar quantos CPFs precisar sem usar dados reais de ninguém.

5 min de leitura

O que é o CPF e como ele é estruturado

O Cadastro de Pessoas Físicas (CPF) é emitido pela Receita Federal e identifica o contribuinte brasileiro. Um CPF tem 11 dígitos divididos em duas partes:

ParteDígitosExemplo
Dígitos base9 primeiros123.456.789
Dígitos verificadores (DV)2 últimos09

Os 9 dígitos base são atribuídos sequencialmente pela Receita Federal. Os 2 dígitos verificadores são calculados matematicamente a partir dos 9 primeiros — é aí que qualquer sistema consegue checar se um CPF é válido sem consultar banco de dados.

Como o dígito verificador é calculado

O algoritmo usa módulo 11 em dois passos:

Passo 1 — calculando o primeiro DV

  1. Multiplique cada um dos 9 dígitos pelos pesos 10, 9, 8, 7, 6, 5, 4, 3, 2;
  2. Some os produtos;
  3. Calcule resto = soma mod 11;
  4. Se o resto for menor que 2, o primeiro DV é 0. Caso contrário, DV1 = 11 − resto.

Passo 2 — calculando o segundo DV

  1. Use os 9 dígitos base mais o DV1 (10 dígitos no total);
  2. Multiplique pelos pesos 11, 10, 9, 8, 7, 6, 5, 4, 3, 2;
  3. Calcule resto = soma mod 11;
  4. Se menor que 2, DV2 = 0. Caso contrário, DV2 = 11 − resto.

Exemplo rápido com CPF 123.456.789-09:

Pesos: 10×1 + 9×2 + 8×3 + 7×4 + 6×5 + 5×6 + 4×7 + 3×8 + 2×9 = 285
285 mod 11 = 10 → DV1 = 11 − 10 = 1 (⚠ neste exemplo fica 1, não 0)

Pesos para DV2 incluem DV1 → resultado final: DV2 = 9
CPF válido: 123.456.789-09

Qualquer CPF que não passar nessa conta é inválido — independentemente de estar cadastrado na Receita ou não.

Sequências especiais que sempre falham na validação

A Receita Federal rejeita CPFs com todos os dígitos iguais, mesmo que o cálculo de módulo 11 coincidentemente dê um DV válido. Os seguintes são sempre inválidos:

000.000.000-00   111.111.111-11   222.222.222-22   ...   999.999.999-99

Qualquer gerador ou validador correto precisa verificar este caso separadamente.

Quando você precisa gerar CPFs para testes

Situações comuns no dia a dia de desenvolvimento:

  • Testes de formulário: cadastro de usuário, checkout de e-commerce, sistemas de RH;
  • Dados de seed: popular banco de dados de homologação com registros fictícios;
  • Integração com APIs: validar campos obrigatórios em serviços que verificam formato e DV;
  • QA automatizado: cenários de teste com dados únicos por execução.

Em todos esses casos o CPF precisa ser matematicamente válido — mas não precisa estar cadastrado na Receita.

A regra de ouro: nunca use CPF real em ambientes de teste

Um CPF gerado por algoritmo pode, por acaso, coincidir com um CPF real de alguma pessoa. Por isso:

  • Nunca copie CPFs de documentos físicos ou sistemas de produção para testes;
  • Em produção, aplique mascaramento (123.***.***-**) ao exibir CPFs;
  • A LGPD (Lei 13.709/18) classifica CPF como dado pessoal — seu tratamento exige base legal.

Geradores online criam combinações artificiais que passam na validação de formato. Isso é suficiente para testes técnicos e não cria vínculo com nenhuma pessoa real (embora coincidência seja possível).

Ferramenta gratuita

Gerador de CPF

Gere CPFs válidos em quantidade, com ou sem máscara, prontos para copiar e usar nos seus testes — sem cadastro e sem limite.

Abrir gerador

Validar um CPF em JavaScript (3 linhas)

Para quem quer implementar a validação no frontend sem dependências:

function validarCPF(cpf) {
  cpf = cpf.replace(/\D/g,'');
  if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false;
  const dv = (i,n) => { let s=cpf.slice(0,n).split('').reduce((a,d,j)=>a+(+d)*(i-j),0); let r=s%11; return r<2?0:11-r; };
  return +cpf[9]===dv(10,9) && +cpf[10]===dv(11,10);
}

Essa função cobre: remoção de máscara, tamanho correto, sequências repetidas e cálculo dos dois DVs.

CPFs gerados por algoritmo são fictícios e servem apenas para testes técnicos. Não use CPFs reais de terceiros em ambientes de homologação.