Generieren Sie gültige, zufällige CPF (Cadastro de Pessoas Físicas)-Nummern für Testzwecke. Dieses Tool erstellt CPFs, die den offiziellen brasilianischen Format- und Validierungsregeln entsprechen, ohne echte persönliche Informationen zu verwenden.
Die CPF (Cadastro de Pessoas Físicas) ist ein eindeutiger Identifikator, der brasilianischen Staatsbürgern und Einwohnern zu Steuerzwecken zugewiesen wird. Dieser Generator erstellt gültige, zufällige CPF-Nummern für Testzwecke. Es ist wichtig zu beachten, dass diese generierten CPFs nicht mit realen Personen verbunden sind und nur in Testumgebungen verwendet werden sollten.
Eine CPF besteht aus 11 Ziffern:
Das Format wird typischerweise als: XXX.XXX.XXX-XX dargestellt
Der CPF-Validierungsalgorithmus gewährleistet die Integrität der Nummer. So funktioniert es:
Die Formel zur Generierung einer gültigen CPF lautet wie folgt:
1def generate_cpf():
2 # Generiere 9 zufällige Ziffern
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Berechne die erste Prüfziffer
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 # Berechne die zweite Prüfziffer
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
Der Generator führt die folgenden Schritte aus:
Hier sind einige Beispiele für generierte CPFs:
Der CPF-Generator ist in verschiedenen Softwareentwicklungs- und Testszenarien nützlich:
Während die CPF der primäre individuelle Identifikator in Brasilien ist, gibt es andere Identifikatoren, die in bestimmten Kontexten verwendet werden können:
Die CPF wurde 1965 in Brasilien eingeführt, um das Steuersystem des Landes zu modernisieren. Ursprünglich wurde sie hauptsächlich für Einkommenssteuerzwecke verwendet, aber im Laufe der Zeit erweiterte sich ihre Verwendung auf verschiedene andere Bereiche der brasilianischen Bürokratie und des Handels.
Wichtige Meilensteine in der Geschichte der CPF:
Heute ist die CPF ein wesentlicher Bestandteil der Interaktionen brasilianischer Bürger und Einwohner mit Regierungsdiensten, Finanzinstituten und vielen kommerziellen Transaktionen.
Hier sind Code-Snippets zur Generierung und Validierung von CPFs in verschiedenen Programmiersprachen:
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## Beispielverwendung
21cpf = generate_cpf()
22print(f"Generierte CPF: {cpf}")
23print(f"Ist gültig: {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// Beispielverwendung
23const cpf = generateCPF();
24console.log(`Generierte CPF: ${cpf}`);
25console.log(`Ist gültig: ${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("Generierte CPF: " + cpf);
50 System.out.println("Ist gültig: " + validateCPF(cpf));
51 }
52}
53
Diese Beispiele zeigen, wie man CPFs in Python, JavaScript und Java generiert und validiert. Sie können diese Funktionen an Ihre spezifischen Bedürfnisse anpassen oder in größere Systeme integrieren, die eine CPF-Verarbeitung erfordern.
Bei der Verwendung generierter CPFs ist es wichtig, die folgenden Punkte zu beachten:
Entdecken Sie weitere Tools, die für Ihren Workflow nützlich sein könnten