Generator CPF pentru Testare și Validare Date Fictive
Generați numere CPF (Cadastro de Pessoas Físicas) valide și aleatorii pentru scopuri de testare. Acest instrument creează CPFs care respectă formatul oficial brazilian și regulile de validare, fără a folosi informații personale reale.
Generați CPF
Documentație
Generator CPF
Introducere
CPF-ul (Cadastro de Pessoas Físicas) este un identificator unic atribuit cetățenilor și rezidenților brazilieni în scopuri fiscale. Acest generator creează numere CPF valide și aleatorii pentru scopuri de testare. Este important de menționat că aceste CPFs generate nu sunt asociate cu persoane reale și ar trebui folosite doar în medii de testare.
Structura unui CPF
Un CPF constă din 11 cifre:
- Primele 9 cifre sunt numerele de bază
- Ultimele 2 cifre sunt cifre de control
Formatul este de obicei reprezentat ca: XXX.XXX.XXX-XX
Algoritmul de validare a CPF-ului
Algoritmul de validare a CPF-ului asigură integritatea numărului. Iată cum funcționează:
- Înmulțiți primele 9 cifre cu greutăți (10 la 2)
- Sumați rezultatele
- Calculați restul sumei împărțit la 11
- Dacă restul este mai mic de 2, prima cifră de control este 0; în caz contrar, este 11 minus restul
- Repetați procesul pentru primele 10 cifre (inclusiv prima cifră de control) cu greutăți 11 la 2
- Calculați a doua cifră de control folosind aceeași regulă ca prima
Cum să folosiți acest generator
- Faceți clic pe butonul „Generați CPF”
- Un CPF valid, aleatoriu va fi afișat
- Puteți copia CPF-ul generat pentru a-l folosi în scenariile dvs. de testare
Formulă
Formula pentru generarea unui CPF valid este următoarea:
1def generate_cpf():
2 # Generați 9 cifre aleatorii
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Calculați prima cifră de control
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 # Calculați a doua cifră de control
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
Calcul
Generatorul efectuează următorii pași:
- Generați 9 cifre aleatorii
- Calculați prima cifră de control folosind algoritmul descris mai sus
- Calculați a doua cifră de control
- Combinați toate cifrele pentru a forma CPF-ul complet
Exemple
Iată câteva exemple de CPFs generate:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Cazuri de utilizare
Generatorul CPF este util în diverse scenarii de dezvoltare software și testare:
- Testarea bazelor de date: Populați bazele de date de testare cu numere CPF valide
- Validarea formularelor: Testați validarea intrării pentru formularele de înregistrare a utilizatorilor brazilieni
- Testarea API-urilor: Folosiți CPFs generate în cererile API care necesită identificare validă braziliană
- Testare de performanță: Generați seturi mari de CPFs unice și valide pentru testarea încărcării
- Testarea UI/UX: Asigurați-vă că formatul și afișarea numerelor CPF sunt corecte în interfețele utilizatorilor
Alternative
Deși CPF-ul este principalul identificator individual în Brazilia, există alte identificatoare care pot fi folosite în contexte specifice:
- RG (Registro Geral): Un document de identitate emis de stat
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Folosit pentru afaceri și entități legale
- PIS/PASEP: Folosit în scopuri legate de muncă
Istorie
CPF-ul a fost introdus în Brazilia în 1965 ca parte a unui efort mai amplu de modernizare a sistemului fiscal al țării. Inițial, a fost folosit în principal pentru scopuri de impozitare pe venit, dar de-a lungul timpului, utilizarea sa s-a extins în diverse alte domenii ale birocrației și comerțului brazilian.
Puncte cheie în istoria CPF-ului:
- 1965: CPF-ul a fost introdus pentru indivizi
- 1972: CPF-ul devine obligatoriu pentru toți indivizii care plătesc impozite
- Anii 1990: CPF-ul începe să fie folosit mai pe larg în tranzacțiile comerciale și financiare
- Anii 2000: Sistemele digitale integrează și mai mult CPF-ul în viața de zi cu zi în Brazilia
Astăzi, CPF-ul este o parte esențială a interacțiunilor cetățenilor și rezidenților brazilieni cu serviciile guvernamentale, instituțiile financiare și multe tranzacții comerciale.
Exemple de cod
Iată fragmente de cod pentru generarea și validarea CPFs în diferite limbaje de programare:
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## Exemplu de utilizare
21cpf = generate_cpf()
22print(f"CPF generat: {cpf}")
23print(f"Este valid: {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// Exemplu de utilizare
23const cpf = generateCPF();
24console.log(`CPF generat: ${cpf}`);
25console.log(`Este valid: ${validateCPF(cpf)}`);
26
1import java.util.Random;
2
3public class CPFGenerator {
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 generat: " + cpf);
50 System.out.println("Este valid: " + validateCPF(cpf));
51 }
52}
53
Aceste exemple demonstrează cum să generați și să validați CPFs în Python, JavaScript și Java. Puteți adapta aceste funcții la nevoile dvs. specifice sau le puteți integra în sisteme mai mari care necesită gestionarea CPF-ului.
Considerații legale și etice
Atunci când utilizați CPFs generate, este crucial să țineți cont de următoarele puncte:
- CPFs generate sunt doar pentru scopuri de testare și nu ar trebui folosite pentru a impersona persoane reale sau pentru activități frauduloase.
- Etichetați clar orice date de testare care conțin CPFs generate pentru a preveni confuzia cu datele personale reale.
- Fiți conștienți de legile și reglementările privind protecția datelor din jurisdicția dvs. atunci când gestionați chiar și identificatori personali falsi.
- În medii de producție, utilizați întotdeauna CPFs reale, verificate, furnizate de utilizatori sau surse autorizate.
- Implementați măsuri de securitate corespunzătoare pentru a proteja atât CPFs reale, cât și generate în sistemele dvs.
Referințe
- 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. "Istoria CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
- Lei nr. 4.862, din 29 noiembrie 1965. "Modifică legislația impozitului pe venit, adoptă diverse măsuri de ordin fiscal și financiar și dispune alte măsuri."
Feedback
Click pe toast-ul de feedback pentru a începe să oferi feedback despre acest instrument
Instrumente Asemănătoare
Descoperă mai multe instrumente care ar putea fi utile pentru fluxul tău de lucru