CPF Generator - Opret Gyldige Brasilianske Skatte-ID'er til Test
Gratis CPF-generator opretter gyldige brasilianske skatte-ID-numre, der består valideringsalgoritmer. Perfekt til test af formularer, API'er og databaser uden brug af rigtige personlige data.
Klik for at generere et gyldigt brasiliansk CPF-nummer til testformål
Dokumentation
CPF Generator - Opret gyldige brasilianske skatteidentifikationsnumre til test
Hvorfor Du Har Brug for en CPF-Generator til Test
Når du udvikler applikationer til det brasilianske marked, vil du hurtigt støde på en fælles udfordring: at teste formularer og valideringslogik uden at kompromittere rigtige brugerdata. Det er her en CPF-generator bliver afgørende.
CPF'en (Cadastro de Pessoas Físicas) er Brasiliens entydige 11-cifrede identifikationsnummer, der udstedes til borgere og beboere til skattemæssige formål. Dette værktøj opretter matematisk gyldige, tilfældige CPF-numre, der består Brasiliens officielle valideringsalgoritme - perfekt til at udfylde testdatabaser, validere inputformularer og køre automatiserede tests uden privatlivsproblemer.
Kritisk begrænsning: Genererede CPF'er er kun til testmiljøer. De er ikke forbundet med virkelige personer og må aldrig bruges i produktionssystemer eller til svigagtige formål. Det, der gør dem værdifulde, er, at de består valideringstjek, mens testdataene holdes fuldstændig adskilt fra rigtige personoplysninger.
Forståelse af CPF-struktur og format
Et gyldigt CPF består af 11 cifre med en specifik struktur:
- Første 9 cifre: Grundlæggende identifikationsnumre
- Sidste 2 cifre: Kontrolcifre til validering
- Standardformat: XXX.XXX.XXX-XX (med punktummer og bindestreg)
Eksempel: 123.456.789-09
Kontrolcifre sikrer, at CPF-nummeret er matematisk gyldigt, hvilket forhindrer stavefejl og ugyldige indtastninger i brasilianske systemer.
Hvordan CPF-validering fungerer
CPF-valideringsalgoritmen bruger et modulo-11 vægtet kontrolciffer-system til at sikre talintegritet. Forståelse af denne algoritme er afgørende, når man implementerer CPF-validering i sine applikationer.
Valideringsprocessen forklaret
Algoritmen beregner to kontrolcifre (de sidste to cifre i CPF'en) baseret på de første ni cifre:
Beregning af første kontrolciffer:
- Multiplicer de første 9 cifre med faldende vægte (10, 9, 8, 7, 6, 5, 4, 3, 2)
- Summer alle multiplikationsresultaterne
- Beregn resten ved division med 11
- Hvis resten < 2, er kontrolcifferet 0; ellers er det 11 minus resten
Beregning af andet kontrolciffer:
- Gentag processen for de første 9 cifre plus første kontrolciffer (10 cifre i alt)
- Brug vægte 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
- Anvend samme restlogik
Denne to-trins validering fanger de fleste overførsels- og indtastningsfejl og forhindrer tilfældige numre i at passere som gyldige CPF'er. Algoritmen er dokumenteret i Lei nº 4.862/1965, som etablerede CPF-systemet.
Hvorfor dette er vigtigt for udviklere
Når man bygger CPF-validering, ser man ofte udviklere overse tilfældet, hvor resten er 0 eller 1 - disse skal mappes til kontrolciffer 0, ikke 10 eller 11. Dette er en almindelig kilde til valideringsfejl. Formlen (sum * 10 % 11) % 10 håndterer dette grænsetilfælde rent ved at sikre, at resultatet aldrig overstiger 9.
Sådan bruges denne CPF-generator
Generering af gyldige test-CPF'er tager sekunder:
- Klik på "Generer CPF"-knappen
- Se det gyldige, tilfældige CPF-nummer vist i standardformatet XXX.XXX.XXX-XX
- Kopier det genererede nummer med ét klik
- Indsæt direkte i dine testformularer, API-anmodninger eller databaseseeds
Hver genereret CPF passerer Brasiliens officielle valideringsalgoritme, så du kan teste din valideringslogik med sikkerhed. Numrene genereres tilfældigt hver gang, hvilket reducerer risikoen for konflikter i dine testdatasæt.
Formel
Formlen til generering af en gyldig CPF er som følger:
1def generate_cpf():
2 # Generer 9 tilfældige cifre
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Beregn første kontrolciffer
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 # Beregn andet kontrolciffer
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]
14Beregning
Generatoren udfører følgende trin:
- Generer 9 tilfældige cifre
- Beregn det første kontrolciffer ved hjælp af den beskrevne algoritme
- Beregn det andet kontrolciffer
- Kombiner alle cifre for at danne den komplette CPF
Eksempler
Her er nogle eksempler på genererede CPF'er:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Almindelige Use Cases for Test af CPF-numre
Baseret på virkelige udviklingsscenarier, her er hvornår du har brug for genererede CPF-numre:
Udviklings- og testscenarier
Database seeding og migrationer: Når du opsætter lokale eller staging-miljøer, har du brug for realistiske testdata. Genererede CPF'er giver dig mulighed for at oprette hundredvis eller tusindvis af test-brugerregistreringer uden at røre ved rigtige personlige oplysninger. Dette er især nyttigt, når du tester databasebegrænsninger og entydige indeks på CPF-kolonner.
Form-validerings test: Brasilianske registreringsformularer kræver typisk CPF-validering på både klient- og serversiden. Test af grænsetilfælde - som korrekt formaterede, men ugyldige CPF'er eller CPF'er med identiske cifre (111.111.111-11) - hjælper med at fange valideringsfejl, før de når produktionen. Genererede CPF'er giver dig gyldige testtilfælde til at verificere, at din valideringslogik fungerer korrekt.
API-integrations test: Når du bygger integrationer med brasilianske betalingsgateways, finansielle tjenester eller statslige API'er, har du ofte brug for gyldige CPF-numre i dine testanmodninger. Brug af genererede CPF'er holder din testsuite uafhængig af rigtige brugerdata.
Belastnings- og performancetest: Til stresstest af systemer, der behandler brasilianske brugerdata, har du brug for store mængder entydige, gyldige CPF'er. Generering af tusindvis af test-CPF'er lader dig simulere realistisk belastning uden privatlivsbekymringer.
UI/UX-validering: Test af hvordan din brugerflade håndterer CPF-visning, maskering og formatering på tværs af forskellige skærmstørrelser og kontekster. Genererede CPF'er hjælper med at verificere, at din formateringslogik (tilføjelse af punktummer og bindestreger) fungerer konsekvent.
Almindelige Faldgruber at Undgå
En fejl, som udviklere ofte begår, er at glemme, at CPF'er med identiske cifre (som 000.000.000-00 eller 111.111.111-11) teknisk set er gyldige efter algoritmen, men afvises af rigtige brasilianske systemer. Ved test skal du inkludere tjek for disse kendte ugyldige mønstre, selvom de består matematisk validering.
Et andet problem: Genererede CPF'er fungerer godt til test af valideringslogik, men hjælper ikke med faktiske CPF-opslag mod statslige databaser. Til integrationstest, der forespørger rigtige brasilianske statslige API'er, har du brug for udpegede test-CPF'er leveret af disse tjenester (som Serpro's testmiljø).
Relaterede Brasilianske Identifikationssystemer
Mens CPF er den primære individuelle identifikator i Brasilien, hjælper forståelsen af relaterede systemer, når man bygger omfattende brasilianske applikationer:
RG (Registro Geral): Statsudstedte identitetsdokumentnumre. Modsat CPF, som er føderalt og følger et konsistent format, varierer RG-numre efter stat og har ikke en standardiseret valideringsalgoritme. Når du bygger applikationer til Brasilien, kræver du typisk CPF til backend-validering og kan acceptere RG som sekundær identifikation.
CNPJ (Cadastro Nacional da Pessoa Jurídica): CPF'ens modstykke for virksomheder, bruges til virksomheder og juridiske enheder. CNPJ bruger en lignende modulo-11 valideringsalgoritme, men har 14 cifre i stedet for 11. Hvis du bygger B2B-applikationer til Brasilien, skal du håndtere både CPF (for individuelle virksomhedsejere) og CNPJ (for registrerede virksomheder).
PIS/PASEP/NIT: Beskæftigelsesrelaterede identifikationsnumre, der bruges af Brasiliens socialsikringssystem. Disse kræves mindre hyppigt i generelle applikationer, men er væsentlige for HR- og lønningssystemer.
CPF's Udvikling i Brasilien
CPF-systemet blev etableret ved Lei nº 4.862/1965 som en del af Brasiliens skattemoderiseringsbestræbelser. Det, der startede som en simpel skatteidentifikator, er blevet Brasiliens de facto nationale ID-nummer.
Vigtige milepæle:
- 1965: CPF introduceret til indkomstskatteindberetning
- 1972: Gjort obligatorisk for alle skattydere
- 1990'erne: Kommerciel adoption accelererer - banker og forhandlere begynder at kræve CPF for transaktioner
- 2000'erne: Digital transformation gør CPF væsentlig for onlinetjenester
- 2020'erne: CPF kræves til næsten alle statslige tjenester, finansielle transaktioner og endda forbrugerkøb
Denne udvidelse forklarer, hvorfor CPF-validering er kritisk for enhver applikation, der betjener brasilianske brugere - det er ikke længere blot et skatte-ID, det er måden brasilianere identificerer sig selv i talrige sammenhænge. Når du tester disse systemer, er det afgørende at have gyldige CPF-numre til realistiske testscenarier.
Kodeeksempler til CPF-generering og -validering
Hvis du har brug for at integrere CPF-generering og -validering direkte i din applikation, her er produktionsklare implementeringer i populære sprog. Hvert eksempel inkluderer både genererings- og valideringsfunktioner, så du kan implementere hele arbejdsgangen.
Disse implementeringer følger den officielle Receita Federal-algoritme og inkluderer håndtering af grænsetilfælde (rester 0 og 1 mapper til kontrolcifre 0).
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
19Eksempel på brug
cpf = generer_cpf() print(f"Genereret CPF: {cpf}") print(f"Er gyldig: {valider_cpf(cpf)}")
1
2javascript function genererCPF() { const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10)); for (let i = 0; i < 2; i++) { let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0); let digit = 11 - (sum % 11); cpf.push(digit > 9 ? 0 : digit); } return cpf.join(''); }
function validerCPF(cpf) { const numbers = cpf.match(/\d/g).map(Number); if (numbers.length !== 11 || new Set(numbers).size === 1) return false; for (let i = 9; i < 11; i++) { let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0); let digit = 11 - (sum % 11); if (numbers[i] !== (digit > 9 ? 0 : digit)) return false; } return true; }
// Eksempel på brug
const cpf = genererCPF();
console.log(Genereret CPF: ${cpf});
console.log(Er gyldig: ${validerCPF(cpf)});
1
2java import java.util.Random;
public class CPFGenerator { private static final Random random = new Random();
public static String genererCPF() {
int[] cpf = new int[11];
for (int i = 0; i < 9; i++) {
cpf[i] = random.nextInt(10);
}
cpf[9] = beregnChecksumciffer(cpf, 10);
cpf[10] = beregnChecksumciffer(cpf, 11);
return formaterCPF(cpf);
}
private static int beregnChecksumciffer(int[] cpf, int faktor) {
int sum = 0;
for (int i = 0; i < faktor - 1; i++) {
sum += cpf[i] * (faktor - i);
}
int resultat = 11 - (sum % 11);
return resultat > 9 ? 0 : resultat;
}
private static String formaterCPF(int[] cpf) {
return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
}
public static boolean validerCPF(String cpf) {
cpf = cpf.replaceAll("[^0-9]", "");
if (cpf.length() != 11) return false;
int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
if (alleEns(numbers)) return false;
int ciffer10 = beregnChecksumciffer(numbers, 10);
int ciffer11 = beregnChecksumciffer(numbers, 11);
return numbers[9] == ciffer10 && numbers[10] == ciffer11;
}
private static boolean alleEns(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i] != array[0]) return false;
}
return true;
}
public static void main(String[] args) {
String cpf = genererCPF();
System.out.println("Genereret CPF: " + cpf);
System.out.println("Er gyldig: " + validerCPF(cpf));
}
}
**Brug af disse implementeringer:**
- Valideringsfunktionerne håndterer både formateret (XXX.XXX.XXX-XX) og uformateret (XXXXXXXXXXX) input
- Tilføj kontroller for kendte ugyldige mønstre (alle identiske cifre) i produktionskode
- Overvej at bruge etablerede biblioteker som `validate-docbr` (Python) eller `cpf-cnpj-validator` (JavaScript) til produktionssystemer - de håndterer kanttilfælde og er grundigt testede
- Disse eksempler er gode til at forstå algoritmen eller bygge letvægtsimplementeringer uden eksterne afhængigheder
## Ofte stillede spørgsmål om CPF-generering
### Er CPF-generatoren gratis at bruge?
Ja, dette værktøj er helt gratis uden krav om registrering. Generer så mange CPF-numre, som du har brug for til testformål. Der er ingen brugsbegrænsninger eller skjulte gebyrer.
### Er genererede CPF-numre forbundet med rigtige personer?
Nej. Selvom tallene er matematisk gyldige og består valideringsalgoritmer, er de tilfældigt genereret og ikke registreret hos Brasiliens Receita Federal. De eksisterer udelukkende som testdata og bør kun bruges i udviklings- og testmiljøer.
### Kan jeg bruge genererede CPF'er i produktionssystemer?
Aldrig. Produktionssystemer skal bruge rigtige, verificerede CPF'er leveret af faktiske brugere gennem legitime registreringsprocesser. Brug af genererede CPF'er i live-systemer overtræder principper for dataintegritet og kan forårsage alvorlige juridiske problemer under [brasiliansk databeskyttelseslov (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).
### Hvordan sikrer generatoren CPF-gyldighed?
Værktøjet implementerer Brasiliens officielle CPF-valideringsalgoritme som specificeret af Receita Federal. Det beregner begge kontrolcifre ved hjælp af den vægtede modulo-11-formel og sikrer, at hvert genereret nummer består standard valideringstest. Algoritmen er den samme, som bruges af brasilianske myndighedssystemer og finansielle institutioner.
### Hvad er forskellen mellem CPF og CNPJ?
CPF (Cadastro de Pessoas Físicas) identificerer enkeltpersoner - borgere og beboere. CNPJ (Cadastro Nacional da Pessoa Jurídica) identificerer virksomheder og juridiske enheder. Tænk på CPF som svarende til et Social Security Number i USA, mens CNPJ er som et Employer Identification Number (EIN). Du vil have brug for forskellige generatorer for hver type.
### Er det lovligt at generere test-CPF-numre?
Generering af CPF-numre til legitim softwaretest og -udvikling er lovligt. Det, der er ulovligt, er at bruge dem svigagtigt - til at udgive sig for at være rigtige personer, begå identitetstyveri eller omgå sikkerhedsforanstaltninger. Hold genererede CPF'er tydeligt markeret som testdata og begrænset til ikke-produktionsmiljøer.
### Hvad med dublerede CPF'er?
Selvom det teoretisk er muligt, er dubletter ekstremt sjældne. Der er cirka 100 milliarder mulige gyldige CPF-kombinationer (under hensyntagen til kontrolcifrets begrænsninger), så sandsynligheden for at generere samme nummer to gange er omkring 1 ud af 100 milliarder pr. forsøg. I praktiske testscenarier vil dubletter ikke være et problem, medmindre du genererer hundredvis af millioner CPF'er.
### Fungerer genererede CPF'er med valideringsbiblioteker?
Ja. Genererede CPF'er består validering i populære biblioteker på tværs af sprog - Python's `validate-docbr`, JavaScript's `cpf-cnpj-validator`, PHP's `geekcom/validator-docs` og andre. De opfylder de matematiske krav, som disse biblioteker tjekker. De vil dog ikke bestå "ægte CPF-opslag" mod myndighedsdatabaser, hvilket er præcis det, du vil have til isoleret testning.
### Hvorfor bliver nogle gyldige CPF'er afvist af min validering?
Din validator kan muligvis tjekke for kendte ugyldige mønstre ud over den matematiske algoritme. For eksempel er CPF'er med alle identiske cifre (000.000.000-00, 111.111.111-11 osv.) matematisk gyldige, men sortlistes af de fleste brasilianske systemer, fordi de er kendte testværdier. God valideringslogik inkluderer både check-ciffer-algoritmen og disse mønsterbaserede afvisninger.
## Juridiske og Etiske Overvejelser
Når du bruger en **CPF-generator**, følg disse vigtige retningslinjer:
1. **Kun test:** Genererede CPF'er er udelukkende til udviklings- og testmiljøer
2. **Tydelig mærkning:** Marker alle testdata, der indeholder genererede CPF'er, for at forhindre forvirring med rigtige data
3. **Overholdelse af privatlivsbeskyttelse:** Forstå databeskyttelseslove (som LGPD i Brasilien), selv når du håndterer falske identifikatorer
4. **Produktionssystemer:** Brug altid rigtige, verificerede CPF'er fra autoriserede kilder i live miljøer
5. **Sikkerhedsforanstaltninger:** Implementer korrekt beskyttelse for både rigtige og genererede CPF'er i dine systemer
6. **Ingen forfalskning:** Brug aldrig genererede numre til at udgive dig for at være andre personer eller begå bedrageri
## Brug af Genererede CPF'er i Din Testsuite
For udviklere, der arbejder med brasilianske applikationer, er pålidelige testdata absolut nødvendige. Denne CPF-generator leverer matematisk gyldige numre, der består valideringscheck, samtidig med at din testning holdes fuldstændig adskilt fra rigtige brugerdata.
Husk disse vigtige punkter, når du integrerer genererede CPF'er i din arbejdsgang:
- **Marker testdata tydeligt** i dine databaseskemaer og dokumentation
- **Implementer mønsterkontroller** for kendte ugyldige CPF'er (alle identiske cifre) i din validering
- **Brug genererede CPF'er kun i ikke-produktionsmiljøer**—staging, udvikling og CI/CD-pipelines
- **Referér til officielle valideringsspecifikationer** fra [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) når du opbygger din egen valideringslogik
Klik på generer-knappen ovenfor for at oprette gyldige CPF-numre til dine testbehov.
## Referencer og officiel dokumentation
For autoritativ information om CPF-standarder og brasilianske dataforskrifter:
1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Officiel dokumentation af CPF-krav og validering. [https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf)
2. **Serpro (Føderal Databehandlingstjeneste).** "Validador de CPF." Statslig CPF-valideringstjeneste med testmiljø. [https://www.serpro.gov.br/links-fixos-superiores/validador-cpf](https://www.serpro.gov.br/links-fixos-superiores/validador-cpf)
3. **Lei Geral de Proteção de Dados (LGPD).** "Brasiliansk generel databeskyttelseslov." Juridisk ramme for behandling af personlige data i Brasilien. [https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd)
4. **Lei nº 4.862/1965.** "Ændrer skattelovgivningen." Oprindelig lovgivning, der etablerer CPF-systemet. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)
5. **Ministério da Fazenda.** "CPF's historie." Historisk kontekst og udvikling af CPF-systemet. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)
---
**Meta Titel:** CPF Generator - Opret gyldige brasilianske skatte-ID'er til test
**Meta Beskrivelse:** Gratis CPF-generator opretter gyldige brasilianske skatte-ID-numre, der består valideringsalgoritmer. Perfekt til test af formularer, API'er og databaser uden brug af rigtige personlige data.