O que é e quando usar o Gerador de CPF?
Um CPF fictício gerado por esta ferramenta é uma sequência numérica de 11 dígitos que atende perfeitamente ao algoritmo de validação oficial (módulo 11), mas que não pertence a nenhum cidadão real cadastrado na base da Receita Federal.
A principal diferença entre um CPF gerado para testes e um CPF real é que o primeiro existe apenas matematicamente para fins de homologação de software. Seu uso prático é indispensável em ambientes locais de desenvolvimento (localhost), servidores de staging, automação de testes unitários, testes de integração e para preenchimento de banco de dados (Database Seeding) sem violar as regras da LGPD (Lei Geral de Proteção de Dados).
Como funciona a validação (Módulo 11)
A integridade de um CPF não é validada consultando a Receita Federal a cada requisição, mas sim calculando seus dois últimos dígitos, conhecidos como dígitos verificadores. Os nove primeiros números são a base. O décimo dígito é calculado através da soma ponderada dos nove primeiros multiplicada por pesos de 10 a 2, onde o resto da divisão por 11 (Módulo 11) determina o resultado. O décimo primeiro dígito segue o mesmo princípio, incluindo o recém-calculado décimo dígito na fórmula.
Nossa ferramenta gera dados de teste processando esse exato cálculo matemático, por isso esses números passam tranquilamente por qualquer validação de formulário (front-end) ou de API (back-end).
O 9º Dígito: Regiões Fiscais (UF)
No Brasil, o nono dígito do CPF (antes dos dígitos verificadores) indica a região fiscal onde o documento foi emitido. Isso não significa necessariamente onde a pessoa mora hoje, mas sim onde o registro inicial ocorreu.
| 9º Dígito | Região Fiscal | Estados (UF) |
|---|---|---|
| 0 | 10ª Região | RS |
| 1 | 1ª Região | DF, GO, MS, MT e TO |
| 2 | 2ª Região | AC, AM, AP, PA, RO e RR |
| 3 | 3ª Região | CE, MA e PI |
| 4 | 4ª Região | AL, PB, PE e RN |
| 5 | 5ª Região | BA e SE |
| 6 | 6ª Região | MG |
| 7 | 7ª Região | ES e RJ |
| 8 | 8ª Região | SP |
| 9 | 9ª Região | PR e SC |
Comparativo: CPF de Teste vs CPF Real
| Característica | CPF Fictício (Gerado) | CPF Real |
|---|---|---|
| Formato Válido de 11 dígitos | ✔ | ✔ |
| Passa pelo Algoritmo (Módulo 11) | ✔ | ✔ |
| Pertence a um Cidadão Brasileiro | ✘ | ✔ |
| Uso Legal em Cadastros Oficiais | ✘ | ✔ |
Uso de CPFs em Testes Automatizados e APIs
Engenheiros de QA e Desenvolvedores constantemente precisam de dados fictícios para popular bancos de dados ou injetar em pipelines de CI/CD. Utilizar frameworks de testes End-to-End (E2E) como Selenium, Cypress ou Playwright requer a entrada de CPFs que o sistema considere válidos. Em testes de rotas REST ou GraphQL, utilizar algoritmos que gerem e validem CPFs dinamicamente previne falhas de validação de dados inconsistentes.
Snippets de Validação de CPF
Clique na linguagem desejada abaixo para expandir o código do algoritmo de validação em diferentes tecnologias:
JavaScript / TypeScript (Node.js & Navegador)
function isCpfValido(cpf) {
cpf = cpf.replace(/\D/g, '');
if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false;
let calc = (mod) => cpf.slice(0, mod - 12).split('')
.reduce((s, b, c) => s + b * (mod - c), 0) * 10 % 11 % 10;
return calc(10) === parseInt(cpf[9]) && calc(11) === parseInt(cpf[10]);
}Python
import re
def is_cpf_valido(cpf: str) -> bool:
cpf = re.sub(r'[^0-9]', '', cpf)
if len(cpf) != 11 or len(set(cpf)) == 1:
return False
def calc_digito(cpf_fatia, multiplicadores):
soma = sum(int(digito) * peso for digito, peso in zip(cpf_fatia, multiplicadores))
resto = soma * 10 % 11
return 0 if resto == 10 else resto
d1 = calc_digito(cpf[:9], range(10, 1, -1))
d2 = calc_digito(cpf[:10], range(11, 1, -1))
return cpf[-2:] == f"{d1}{d2}"PHP
function isCpfValido($cpf) {
$cpf = preg_replace( '/[^0-9]/is', '', $cpf );
if (strlen($cpf) != 11 || preg_match('/(\d)\1{10}/', $cpf)) return false;
for ($t = 9; $t < 11; $t++) {
for ($d = 0, $c = 0; $c < $t; $c++) {
$d += $cpf[$c] * (($t + 1) - $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf[$c] != $d) return false;
}
return true;
}C#
public static bool IsCpfValido(string cpf) {
cpf = new string(cpf.Where(char.IsDigit).ToArray());
if (cpf.Length != 11 || cpf.Distinct().Count() == 1) return false;
int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
string tempCpf = cpf.Substring(0, 9);
int soma = 0;
for(int i=0; i<9; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];
int resto = soma % 11;
resto = resto < 2 ? 0 : 11 - resto;
tempCpf = tempCpf + resto.ToString();
soma = 0;
for(int i=0; i<10; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];
resto = soma % 11;
resto = resto < 2 ? 0 : 11 - resto;
return cpf.EndsWith(resto.ToString());
}Termo de Uso e Responsabilidade
Este Gerador de CPF cria dados fictícios de uso exclusivamente técnico, voltados para o desenvolvimento de software e testes de sistemas.
Os números gerados não correspondem a nenhuma pessoa registrada junto à Receita Federal do Brasil. A utilização indevida destes dados para fraudes, falsidade ideológica ou para burlar cadastros oficiais constitui crime sujeito às penalidades da lei civil e criminal brasileira. A plataforma RockTools exime-se de qualquer responsabilidade sobre a utilização inadequada desta ferramenta.