Gerador de CPF válido
uso exclusivo para desenvolvimento e testes.
O gerador de CPF cria números de CPF que passam na validação do dígito verificador, para você usar em teste de cadastro, formulário e ambiente de homologação. São números sinteticamente válidos e não pertencem a nenhuma pessoa.
Como o CPF é validado
O CPF tem onze dígitos: nove de base e dois verificadores. Os verificadores saem de um cálculo de módulo 11 sobre os dígitos anteriores, com pesos decrescentes. O primeiro usa pesos de 10 a 2 sobre os nove primeiros dígitos; o segundo usa pesos de 11 a 2 sobre os dez primeiros, já incluindo o dígito recém calculado. Em ambos, resto menor que dois resulta em dígito zero.
É por isso que digitar onze dígitos quaisquer quase sempre é rejeitado: a chance de acertar os dois verificadores por acaso é de um em cem. A ferramenta faz esse cálculo, então o número gerado passa em qualquer validação de dígito verificador.
O nono dígito, aliás, não é aleatório na vida real: ele identifica a região fiscal de emissão, de 1 a 0, sendo 8 o código de São Paulo, por exemplo. Validador nenhum confere isso, mas vale saber que o número carrega essa informação.
O cálculo, passo a passo
Vale acompanhar com um número concreto: 529.982.247-25. A base são os nove primeiros dígitos, 529982247, e os dois últimos são o que vamos recalcular.
Primeiro dígito: multiplique cada um dos nove dígitos por um peso que começa em 10 e desce até 2. Fica 5x10=50, 2x9=18, 9x8=72, 9x7=63, 8x6=48, 2x5=10, 2x4=8, 4x3=12 e 7x2=14. A soma dá 295. O resto de 295 por 11 é 9. Como o resto é maior ou igual a 2, o dígito é 11 menos 9, ou seja, 2.
Segundo dígito: repita a conta sobre dez dígitos, agora incluindo o 2 que acabou de sair, com pesos de 11 a 2. A soma dá 347, o resto por 11 é 6, e o dígito é 11 menos 6, ou seja, 5. Fecha em 25, que é exatamente o que estava no número.
A regra que sobra é a do resto menor que 2: nesse caso o dígito é zero, não 11 nem 10. É de longe o erro mais comum em implementação caseira.
Implementação de referência
As duas funções abaixo fazem a conta descrita acima. O detalhe do (soma vezes 10) módulo 11 é um atalho aritmético equivalente à regra do 11 menos o resto, com a vantagem de já devolver 0 nos casos em que o resto era 0 ou 1. Só o 10 precisa ser tratado à parte.
Duas guardas antes da conta merecem atenção. A primeira remove só a máscara, ponto, hífen e espaço, em vez de remover todo caractere não numérico: um replace genérico aceitaria 529.982.247-25x, porque o x sairia junto com a pontuação. A segunda rejeita sequência repetida, sem a qual 111.111.111-11 e as outras dez passam, já que satisfazem o módulo 11 por acidente.
export function isValidCpf(value: string): boolean {
// tira so a mascara. Um \D generico aqui aceitaria "529.982.247-25x",
// porque o lixo sairia junto com o ponto e o hifen.
const digits = value.replace(/[.\s-]/g, "");
// 11 digitos e nada de sequencia repetida: 111.111.111-11
// satisfaz o modulo 11 por acidente.
if (!/^\d{11}$/.test(digits)) return false;
if (/^(\d)\1{10}$/.test(digits)) return false;
// len = 9 calcula o primeiro DV (pesos 10..2),
// len = 10 calcula o segundo (pesos 11..2).
const dv = (len: number): number => {
let sum = 0;
for (let i = 0; i < len; i++) {
sum += Number(digits[i]) * (len + 1 - i);
}
const rest = (sum * 10) % 11;
return rest === 10 ? 0 : rest;
};
return dv(9) === Number(digits[9])
&& dv(10) === Number(digits[10]);
}public static bool IsValidCpf(string value)
{
var digits = "";
foreach (var c in value)
{
if (c == '.' || c == '-' || c == ' ') continue;
if (c < '0' || c > '9') return false;
digits += c;
}
if (digits.Length != 11) return false;
var repeated = true;
for (var i = 1; i < 11; i++)
if (digits[i] != digits[0]) { repeated = false; break; }
if (repeated) return false;
int Dv(int len)
{
var sum = 0;
for (var i = 0; i < len; i++)
sum += (digits[i] - '0') * (len + 1 - i);
var rest = sum * 10 % 11;
return rest == 10 ? 0 : rest;
}
return Dv(9) == digits[9] - '0'
&& Dv(10) == digits[10] - '0';
}Válido não é o mesmo que existente
Passar no dígito verificador significa apenas que o número é bem formado. Não diz nada sobre estar inscrito na Receita Federal, nem sobre a situação cadastral. Quem precisa dessa checagem consulta a Receita, e nenhum gerador substitui isso.
Alguns validadores mal escritos aceitam sequências como 111.111.111-11, que satisfazem o módulo 11 por acidente. Um validador correto rejeita as onze sequências de dígito repetido explicitamente. Vale testar o seu com esses valores.
Uso responsável
Estes números servem para desenvolvimento e teste. Usar CPF de terceiro ou apresentar CPF falso como próprio em cadastro real é crime. O ponto da ferramenta é justamente o contrário: parar de usar CPF de pessoa real em base de teste, o que também é uma exigência prática da LGPD, já que ambiente de homologação com dado real continua sendo tratamento de dado pessoal.
Nada do que você cola aqui sai do seu navegador. O processamento é todo local, em JavaScript, sem envio para servidor, sem log e sem armazenamento.
Perguntas frequentes
O CPF gerado existe de verdade?
Não. Ele é matematicamente válido, ou seja, passa na checagem do dígito verificador, mas não corresponde a nenhum cadastro na Receita Federal. É exatamente o que se quer em ambiente de teste.
Posso usar em cadastro real?
Não. Serve só para desenvolvimento, teste automatizado e homologação. Usar CPF falso ou de terceiro em cadastro real é ilegal.
Como funciona o cálculo do dígito verificador?
Os dois últimos dígitos vêm de um módulo 11. O primeiro aplica pesos de 10 a 2 sobre os nove dígitos de base; o segundo aplica pesos de 11 a 2 sobre os dez dígitos já com o primeiro verificador. Se o resto for menor que dois, o dígito é zero.
Por que 111.111.111-11 passa em alguns validadores?
Porque sequências de dígito repetido satisfazem o módulo 11 por acidente. Um validador correto rejeita as onze sequências explicitamente, antes de calcular. É um bom caso de teste para o seu código.
O que significa o nono dígito do CPF?
Ele indica a região fiscal em que o CPF foi emitido. Não entra em nenhuma validação de formato, mas explica por que CPFs de um mesmo estado tendem a compartilhar esse dígito.
Referências
- Receita Federal: Meu CPFPágina oficial do cadastro, incluindo consulta de situação cadastral.
- Lei 13.709/2018 (LGPD)Texto integral da lei, incluindo o conceito de dado pessoal que vale também em ambiente de teste.