Como gerar CPF e CNPJ válidos para testes
Aprenda o algoritmo de validação do CPF e CNPJ, por que usar dados fictícios em testes é uma prática essencial e como evitar erros comuns.
CPF (Cadastro de Pessoas Físicas) e CNPJ (Cadastro Nacional da Pessoa Jurídica) são documentos fundamentais em sistemas brasileiros. Desenvolver e testar sistemas que os processam exige dados válidos — mas usar CPFs e CNPJs reais de pessoas ou empresas em ambientes de desenvolvimento viola a LGPD e representa um risco de segurança. A solução é gerar números fictícios que passam na validação matemática.
O algoritmo de validação do CPF
Um CPF tem 11 dígitos: 9 dígitos base + 2 dígitos verificadores. O primeiro dígito verificador é calculado multiplicando os 9 primeiros dígitos pelos pesos 10, 9, 8, 7, 6, 5, 4, 3, 2, somando os produtos, calculando o resto da divisão por 11. Se o resto for 0 ou 1, o dígito é 0; caso contrário, é 11 menos o resto. O segundo dígito usa os 10 primeiros dígitos com pesos 11 a 2.
function validarCPF(cpf) {
cpf = cpf.replace(/\D/g, '');
if (cpf.length !== 11) return false;
// Rejeita sequências iguais (111.111.111-11 é inválido)
if (/^(\d)\1+$/.test(cpf)) return false;
const calc = (len) => {
let sum = 0;
for (let i = 0; i < len; i++) sum += +cpf[i] * (len + 1 - i);
const r = (sum * 10) % 11;
return r === 10 ? 0 : r;
};
return calc(9) === +cpf[9] && calc(10) === +cpf[10];
}O algoritmo do CNPJ
O CNPJ tem 14 dígitos: 12 dígitos base + 2 verificadores. O cálculo é similar ao CPF, mas com pesos diferentes. Para o primeiro verificador, os pesos são 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 (aplicados aos 12 primeiros dígitos). Para o segundo, os pesos são 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 (aplicados aos 13 primeiros). A fórmula de mod 11 é a mesma.
Por que usar dados fictícios em testes?
- LGPD: usar CPFs reais em ambientes de dev/teste viola a Lei Geral de Proteção de Dados
- Segurança: dados reais em logs, dumps e ambientes não-produtivos representam risco de vazamento
- Reprodutibilidade: dados fictícios são controláveis e consistentes entre execuções de teste
- Automação: é fácil gerar grandes volumes de dados fictícios para testes de carga
Use os geradores de CPF e CNPJ do UtilDev para obter números matematicamente válidos instantaneamente. Todos os valores gerados são fictícios, nunca pertencem a pessoas ou empresas reais.