Generera giltiga och slumpmässiga CPF-nummer för testning
Generera giltiga, slumpmässiga CPF (Cadastro de Pessoas Físicas) nummer för teständamål. Det här verktyget skapar CPF som följer det officiella brasilianska formatet och valideringsreglerna, utan att använda någon verklig personlig information.
Generera CPF
Dokumentation
CPF Generator
Introduktion
CPF (Cadastro de Pessoas Físicas) är en unik identifierare som tilldelas brasilianska medborgare och invånare för skatteändamål. Denna generator skapar giltiga, slumpmässiga CPF-nummer för teständamål. Det är viktigt att notera att dessa genererade CPFn inte är kopplade till verkliga individer och endast bör användas i testmiljöer.
Struktur av en CPF
En CPF består av 11 siffror:
- De första 9 siffrorna är basnummer
- De sista 2 siffrorna är kontrollsiffror
Formatet representeras vanligtvis som: XXX.XXX.XXX-XX
CPF Valideringsalgoritm
CPF-valideringsalgoritmen säkerställer integriteten hos numret. Så här fungerar det:
- Multiplicera de första 9 siffrorna med vikter (10 till 2)
- Summera resultaten
- Beräkna resten av summan dividerad med 11
- Om resten är mindre än 2 är den första kontrollsiffran 0; annars är det 11 minus resten
- Upprepa processen för de första 10 siffrorna (inklusive den första kontrollsiffran) med vikter 11 till 2
- Beräkna den andra kontrollsiffran med samma regel som den första
Hur man använder denna generator
- Klicka på knappen "Generera CPF"
- Ett giltigt, slumpmässigt CPF kommer att visas
- Du kan kopiera den genererade CPF:n för att använda i dina testscenarier
Formel
Formeln för att generera en giltig CPF är som följer:
1def generate_cpf():
2 # Generera 9 slumpmässiga siffror
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Beräkna första kontrollsiffran
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 # Beräkna andra kontrollsiffran
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
Beräkning
Generatorn utför följande steg:
- Generera 9 slumpmässiga siffror
- Beräkna den första kontrollsiffran med hjälp av algoritmen som beskrivs ovan
- Beräkna den andra kontrollsiffran
- Kombinera alla siffror för att bilda den kompletta CPF:n
Exempel
Här är några exempel på genererade CPFn:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Användningsområden
CPF-generatorn är användbar i olika programvaruutvecklings- och testscenarier:
- Databas Testning: Fyll testdatabaser med giltiga CPF-nummer
- Formulärvalidering: Testa inmatningsvalidering för brasilianska användarregistreringsformulär
- API-testning: Använd genererade CPFn i API-förfrågningar som kräver giltig brasiliansk identifiering
- Prestandatestning: Generera stora mängder unika, giltiga CPFn för belastningstestning
- UI/UX-testning: Säkerställ korrekt formatering och visning av CPF-nummer i användargränssnitt
Alternativ
Även om CPF är den primära individuella identifieraren i Brasilien, finns det andra identifierare som kan användas i specifika sammanhang:
- RG (Registro Geral): Ett statligt utfärdat identitetsdokument
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Används för företag och juridiska enheter
- PIS/PASEP: Används för anställningsrelaterade ändamål
Historia
CPF introducerades i Brasilien 1965 som en del av en bredare insats för att modernisera landets skattesystem. Ursprungligen användes det främst för inkomstskatteändamål, men med tiden utvidgades dess användning till olika andra områden inom brasiliansk byråkrati och handel.
Nyckelmilstolpar i CPF-historien:
- 1965: CPF introduceras för individer
- 1972: CPF blir obligatoriskt för alla skattebetalande individer
- 1990-talet: CPF börjar användas mer allmänt i kommersiella och finansiella transaktioner
- 2000-talet: Digitala system integrerar ytterligare CPF i det dagliga livet i Brasilien
Idag är CPF en viktig del av brasilianska medborgares och invånares interaktioner med statliga tjänster, finansiella institutioner och många kommersiella transaktioner.
Kodexempel
Här är kodsnuttar för att generera och validera CPFn i olika programmeringsspråk:
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## Exempelanvändning
21cpf = generate_cpf()
22print(f"Genererad CPF: {cpf}")
23print(f"Är giltig: {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// Exempelanvändning
23const cpf = generateCPF();
24console.log(`Genererad CPF: ${cpf}`);
25console.log(`Är giltig: ${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("Genererad CPF: " + cpf);
50 System.out.println("Är giltig: " + validateCPF(cpf));
51 }
52}
53
Dessa exempel visar hur man genererar och validerar CPFn i Python, JavaScript och Java. Du kan anpassa dessa funktioner efter dina specifika behov eller integrera dem i större system som kräver CPF-hantering.
Juridiska och etiska överväganden
När du använder genererade CPFn är det avgörande att tänka på följande punkter:
- Genererade CPFn är endast för teständamål och bör aldrig användas för att utge sig för verkliga individer eller för några bedrägliga aktiviteter.
- Tydligt märk all testdata som innehåller genererade CPFn för att förhindra förvirring med verkliga personuppgifter.
- Var medveten om dataskyddslagar och förordningar i din jurisdiktion när du hanterar även falska personidentifierare.
- I produktionsmiljöer, använd alltid riktiga, verifierade CPFn som tillhandahålls av användare eller auktoriserade källor.
- Implementera lämpliga säkerhetsåtgärder för att skydda både riktiga och genererade CPFn i dina system.
Referenser
- 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."
Återkoppling
Klicka på återkopplingsmeddelandet för att börja ge återkoppling om detta verktyg
Relaterade verktyg
Upptäck fler verktyg som kan vara användbara för ditt arbetsflöde