Gerador de CPF Válido para Testes e Desenvolvimento de Software
Gere números de CPF (Cadastro de Pessoas Físicas) válidos e aleatórios para fins de teste. Esta ferramenta cria CPFs que cumprem o formato e as regras de validação oficiais brasileiras, sem usar informações pessoais reais.
Gerar CPF
Documentação
Gerador de CPF
Introdução
O CPF (Cadastro de Pessoas Físicas) é um identificador único atribuído a cidadãos e residentes brasileiros para fins fiscais. Este gerador cria números de CPF válidos e aleatórios para fins de teste. É importante notar que esses CPFs gerados não estão associados a indivíduos reais e devem ser usados apenas em ambientes de teste.
Estrutura de um CPF
Um CPF consiste em 11 dígitos:
- Os primeiros 9 dígitos são os números base
- Os últimos 2 dígitos são dígitos de verificação
O formato é tipicamente representado como: XXX.XXX.XXX-XX
Algoritmo de Validação do CPF
O algoritmo de validação do CPF garante a integridade do número. Veja como funciona:
- Multiplique os primeiros 9 dígitos por pesos (10 a 2)
- Some os resultados
- Calcule o resto da soma dividida por 11
- Se o resto for menor que 2, o primeiro dígito de verificação é 0; caso contrário, é 11 menos o resto
- Repita o processo para os primeiros 10 dígitos (incluindo o primeiro dígito de verificação) com pesos de 11 a 2
- Calcule o segundo dígito de verificação usando a mesma regra que o primeiro
Como Usar Este Gerador
- Clique no botão "Gerar CPF"
- Um CPF válido e aleatório será exibido
- Você pode copiar o CPF gerado para usar em seus cenários de teste
Fórmula
A fórmula para gerar um CPF válido é a seguinte:
1def generate_cpf():
2 # Gerar 9 dígitos aleatórios
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Calcular o primeiro dígito de verificação
6 sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
7 check_digit_1 = (sum_1 * 10 % 11) % 10
8
9 # Calcular o segundo dígito de verificação
10 sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
11 check_digit_2 = (sum_2 * 10 % 11) % 10
12
13 return base_cpf + [check_digit_1, check_digit_2]
14
Cálculo
O gerador realiza os seguintes passos:
- Gere 9 dígitos aleatórios
- Calcule o primeiro dígito de verificação usando o algoritmo descrito acima
- Calcule o segundo dígito de verificação
- Combine todos os dígitos para formar o CPF completo
Exemplos
Aqui estão alguns exemplos de CPFs gerados:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Casos de Uso
O gerador de CPF é útil em vários cenários de desenvolvimento e teste de software:
- Teste de Banco de Dados: Popule bancos de dados de teste com números de CPF válidos
- Validação de Formulário: Teste a validação de entrada para formulários de registro de usuários brasileiros
- Teste de API: Use CPFs gerados em solicitações de API que exigem identificação brasileira válida
- Teste de Performance: Gere grandes conjuntos de CPFs únicos e válidos para testes de carga
- Teste de UI/UX: Garanta o formato e a exibição adequados dos números de CPF nas interfaces do usuário
Alternativas
Embora o CPF seja o principal identificador individual no Brasil, existem outros identificadores que podem ser usados em contextos específicos:
- RG (Registro Geral): Um documento de identidade emitido pelo estado
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Usado para empresas e entidades legais
- PIS/PASEP: Usado para fins relacionados ao emprego
História
O CPF foi introduzido no Brasil em 1965 como parte de um esforço mais amplo para modernizar o sistema fiscal do país. Inicialmente, era usado principalmente para fins de imposto de renda, mas ao longo do tempo, seu uso se expandiu para várias outras áreas da burocracia e do comércio brasileiro.
Principais marcos na história do CPF:
- 1965: CPF introduzido para indivíduos
- 1972: CPF se torna obrigatório para todos os indivíduos que pagam impostos
- Anos 1990: CPF começa a ser usado mais amplamente em transações comerciais e financeiras
- Anos 2000: Sistemas digitais integram ainda mais o CPF na vida cotidiana no Brasil
Hoje, o CPF é uma parte essencial das interações dos cidadãos e residentes brasileiros com serviços governamentais, instituições financeiras e muitas transações comerciais.
Exemplos de Código
Aqui estão trechos de código para gerar e validar CPFs em várias linguagens de programação:
1import random
2
3def generate_cpf():
4 cpf = [random.randint(0, 9) for _ in range(9)]
5 for _ in range(2):
6 value = sum((cpf[num] * ((len(cpf) + 1) - num) for num in range(len(cpf)))) % 11
7 cpf.append(11 - value if value > 1 else 0)
8 return ''.join(map(str, cpf))
9
10def validate_cpf(cpf):
11 numbers = [int(digit) for digit in cpf if digit.isdigit()]
12 if len(numbers) != 11 or len(set(numbers)) == 1:
13 return False
14 for i in range(9, 11):
15 value = sum((numbers[num] * ((i + 1) - num) for num in range(i))) % 11
16 if numbers[i] != (11 - value if value > 1 else 0):
17 return False
18 return True
19
20## Exemplo de uso
21cpf = generate_cpf()
22print(f"CPF Gerado: {cpf}")
23print(f"É válido: {validate_cpf(cpf)}")
24
1function generateCPF() {
2 const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10));
3 for (let i = 0; i < 2; i++) {
4 let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0);
5 let digit = 11 - (sum % 11);
6 cpf.push(digit > 9 ? 0 : digit);
7 }
8 return cpf.join('');
9}
10
11function validateCPF(cpf) {
12 const numbers = cpf.match(/\d/g).map(Number);
13 if (numbers.length !== 11 || new Set(numbers).size === 1) return false;
14 for (let i = 9; i < 11; i++) {
15 let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0);
16 let digit = 11 - (sum % 11);
17 if (numbers[i] !== (digit > 9 ? 0 : digit)) return false;
18 }
19 return true;
20}
21
22// Exemplo de uso
23const cpf = generateCPF();
24console.log(`CPF Gerado: ${cpf}`);
25console.log(`É válido: ${validateCPF(cpf)}`);
26
1import java.util.Random;
2
3public class GeradorCPF {
4 private static final Random random = new Random();
5
6 public static String generateCPF() {
7 int[] cpf = new int[11];
8 for (int i = 0; i < 9; i++) {
9 cpf[i] = random.nextInt(10);
10 }
11 cpf[9] = calculateCheckDigit(cpf, 10);
12 cpf[10] = calculateCheckDigit(cpf, 11);
13 return formatCPF(cpf);
14 }
15
16 private static int calculateCheckDigit(int[] cpf, int factor) {
17 int sum = 0;
18 for (int i = 0; i < factor - 1; i++) {
19 sum += cpf[i] * (factor - i);
20 }
21 int result = 11 - (sum % 11);
22 return result > 9 ? 0 : result;
23 }
24
25 private static String formatCPF(int[] cpf) {
26 return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
27 cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
28 }
29
30 public static boolean validateCPF(String cpf) {
31 cpf = cpf.replaceAll("[^0-9]", "");
32 if (cpf.length() != 11) return false;
33 int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
34 if (allEqual(numbers)) return false;
35 int digit10 = calculateCheckDigit(numbers, 10);
36 int digit11 = calculateCheckDigit(numbers, 11);
37 return numbers[9] == digit10 && numbers[10] == digit11;
38 }
39
40 private static boolean allEqual(int[] array) {
41 for (int i = 1; i < array.length; i++) {
42 if (array[i] != array[0]) return false;
43 }
44 return true;
45 }
46
47 public static void main(String[] args) {
48 String cpf = generateCPF();
49 System.out.println("CPF Gerado: " + cpf);
50 System.out.println("É válido: " + validateCPF(cpf));
51 }
52}
53
Esses exemplos demonstram como gerar e validar CPFs em Python, JavaScript e Java. Você pode adaptar essas funções para suas necessidades específicas ou integrá-las em sistemas maiores que exigem manipulação de CPF.
Considerações Legais e Éticas
Ao usar CPFs gerados, é crucial ter em mente os seguintes pontos:
- CPFs gerados são apenas para fins de teste e nunca devem ser usados para se passar por indivíduos reais ou para qualquer atividade fraudulenta.
- Rotule claramente quaisquer dados de teste contendo CPFs gerados para evitar confusão com dados pessoais reais.
- Esteja ciente das leis e regulamentos de proteção de dados em sua jurisdição ao lidar com até mesmo identificadores pessoais falsos.
- Em ambientes de produção, sempre use CPFs reais e verificados fornecidos por usuários ou fontes autorizadas.
- Implemente medidas de segurança adequadas para proteger tanto CPFs reais quanto gerados em seus sistemas.
Referências
- Receita Federal do Brasil. "CPF - Cadastro de Pessoas Físicas." https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf
- Serpro. "Validador de CPF." https://www.serpro.gov.br/links-fixos-superiores/validador-cpf
- Ministério da Fazenda. "História do CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
- Lei nº 4.862, de 29 de novembro de 1965. "Altera a legislação do impôsto de renda, adota diversas medidas de ordem fiscal e fazendária, e dá outras providências."
Feedback
Clique no aviso de feedback para começar a dar feedback sobre esta ferramenta
Ferramentas Relacionadas
Descubra mais ferramentas que podem ser úteis para seu fluxo de trabalho