Hopp til innhold

CPF Generator - Opprett gyldige brasilianske skatteidentifikasjonsnumre for testing

Gratis CPF-generator oppretter gyldige brasilianske skatteidentifikasjonsnumre som passerer valideringsalgoritmer. Perfekt for testing av skjemaer, APIer og databaser uten å bruke virkelige personopplysninger.

Klikk for å generere et gyldig brasiliansk CPF-nummer for testing

Lastekalkulator...
📚

Dokumentasjon

CPF Generator - Opprett gyldige brasilianske skatteidentifikasjonsnumre for testing

Hvorfor du trenger en CPF-generator for testing

Når du utvikler applikasjoner for det brasilianske markedet, vil du raskt støte på en vanlig utfordring: teste skjemaer og valideringslogikk uten å kompromittere virkelige brukerdata. Det er her en CPF-generator blir avgjørende.

CPF (Cadastro de Pessoas Físicas) er Brasils unike 11-sifrede identifikasjonsnummer som utstedes til borgere og innbyggere for skatteformål. Dette verktøyet oppretter matematisk gyldige, tilfeldige CPF-numre som passerer Brasils offisielle valideringsalgoritme—perfekt for å fylle testdatabaser, validere innskjemaer og kjøre automatiserte tester uten personvernbekymringer.

Kritisk begrensning: Genererte CPF-er er kun for testmiljøer. De er ikke knyttet til virkelige personer og må aldri brukes i produksjonssystemer eller til svikaktige formål. Det som gjør dem verdifulle, er at de passerer valideringssjekker samtidig som testdataene holdes fullstendig atskilt fra virkelige personopplysninger.

Forstå CPF-struktur og format

Et gyldig CPF består av 11 sifre med en spesifikk struktur:

  • Første 9 sifre: Grunnleggende identifikasjonsnumre
  • Siste 2 sifre: Kontrollsifre for validering
  • Standardformat: XXX.XXX.XXX-XX (med punktum og bindestrek)

Eksempel: 123.456.789-09

Kontrollsifrene sikrer at CPF-nummeret er matematisk gyldig, og forhindrer skrivefeil og ugyldige oppføringer i brasilianske systemer.

Hvordan CPF-validering fungerer

CPF-valideringsalgoritmen bruker et modulo-11 vektet sjekksiffer-system for å sikre tallintegritet. Å forstå denne algoritmen er avgjørende når du implementerer CPF-validering i dine applikasjoner.

Valideringsprosessen forklart

Algoritmen beregner to sjekksiffer (de siste to sifrene i CPF) basert på de første ni sifrene:

Beregning av første sjekksiffer:

  1. Multipliser de første 9 sifrene med synkende vekter (10, 9, 8, 7, 6, 5, 4, 3, 2)
  2. Summer alle multiplikasjonsresultatene
  3. Beregn resten når det deles på 11
  4. Hvis resten < 2, er sjekksifferet 0; ellers er det 11 minus resten

Beregning av andre sjekksiffer:

  1. Gjenta prosessen for de første 9 sifrene pluss første sjekksiffer (10 sifre totalt)
  2. Bruk vekter 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
  3. Bruk samme restlogikk

Denne totrinnsvalgideringen fanger opp de fleste overføringsfeil og forhindrer at tilfeldige tall godkjennes som gyldige CPF-er. Algoritmen er dokumentert i Lei nº 4.862/1965, som etablerte CPF-systemet.

Hvorfor dette betyr noe for utviklere

Når du bygger CPF-validering, vil du ofte se utviklere gå glipp av grensefallet der resten er 0 eller 1—disse skal mappes til sjekksiffer 0, ikke 10 eller 11. Dette er en vanlig kilde til valideringsfeil. Formelen (sum * 10 % 11) % 10 håndterer dette grensefallet rent ved å sikre at resultatet aldri overstiger 9.

Hvordan bruke denne CPF-generatoren

Generering av gyldige test-CPFer tar sekunder:

  1. Klikk på "Generer CPF"-knappen
  2. Vis den gyldige, tilfeldige CPF-nummeret som vises i standard XXX.XXX.XXX-XX-format
  3. Kopier det genererte nummeret med ett klikk
  4. Lim inn direkte i testskjemaer, API-forespørsler eller databaseseeder

Hver genererte CPF passerer Brasils offisielle valideringsalgoritme, slik at du trygt kan teste din valideringslogikk. Numrene genereres tilfeldig hver gang, noe som reduserer sjansen for konflikter i testdatasettene.

Formel

Formelen for å generere en gyldig CPF er som følger:

1def generate_cpf():
2    # Generer 9 tilfeldige sifre
3    base_cpf = [random.randint(0, 9) for _ in range(9)]
4    
5    # Beregn første kontrollsifre
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 andre kontrollsifre
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

Beregning

Generatoren utfører følgende trinn:

  1. Generer 9 tilfeldige sifre
  2. Beregn det første kontrollsifferet ved hjelp av algoritmen beskrevet ovenfor
  3. Beregn det andre kontrollsifferet
  4. Kombiner alle sifre for å danne den fullstendige CPF-en

Eksempler

Her er noen eksempler på genererte CPFer:

  1. 123.456.789-09
  2. 987.654.321-00
  3. 111.222.333-96

Vanlige brukstilfeller for testing av CPF-nummer

Basert på virkelige utviklingsscenarier, her er når du trenger genererte CPF-nummer:

Utviklings- og testscenarier

Databaseseeding og migrasjon: Når du setter opp lokale eller midlertidige miljøer, trenger du realistiske testdata. Genererte CPF-er lar deg opprette hundrevis eller tusenvis av test brukeroppføringer uten å røre virkelig personlig informasjon. Dette er spesielt nyttig når du tester databasebegrensninger og unike indekser på CPF-kolonner.

Skjemavalidasjonstesting: Brasilianske registreringsskjemaer krever vanligvis CPF-validering på både klient- og serversiden. Testing av grensetilfeller—som riktig formaterte, men ugyldige CPF-er, eller alle identiske sifre (111.111.111-11)—hjelper med å oppdage valideringsfeil før de når produksjon. Genererte CPF-er gir deg gyldige testtilfeller for å bekrefte at valideringslogikken din fungerer riktig.

API-integrasjonstesting: Når du bygger integrasjoner med brasilianske betalingsportaler, finansielle tjenester eller offentlige API-er, trenger du ofte gyldige CPF-nummer i testforespørslene dine. Bruk av genererte CPF-er holder testsettet ditt uavhengig av virkelige brukerdata.

Belastnings- og ytelsestesting: For å stresse teste systemer som behandler brasilianske brukerdata, trenger du store mengder unike, gyldige CPF-er. Generering av tusenvis av test-CPF-er lar deg simulere realistisk belastning uten personvernbekymringer.

UI/UX-validering: Testing av hvordan grensesnittet håndterer CPF-visning, maskering og formatering på tvers av forskjellige skjermstørrelser og kontekster. Genererte CPF-er hjelper med å bekrefte at formateringslogikken din (legge til punktum og bindestrek) fungerer konsekvent.

Vanlige fallgruver å unngå

En feil utviklere ofte gjør er å glemme at alle identiske sifre (som 000.000.000-00 eller 111.111.111-11) er teknisk gyldige etter algoritmen, men avvises av virkelige brasilianske systemer. Ved testing bør du inkludere sjekk for disse kjente ugyldige mønstrene, selv om de passerer matematisk validering.

Et annet problem: genererte CPF-er fungerer bra for testing av valideringslogikk, men vil ikke hjelpe deg med å teste faktiske CPF-oppslag mot offentlige databaser. For integrasjonstester som spør mot virkelige brasilianske offentlige API-er, trenger du å bruke utpekte test-CPF-er levert av disse tjenestene (som Serpro's testmiljø).

Relaterte brasilianske identifikasjonssystemer

Mens CPF er den primære individuelle identifikatoren i Brasil, hjelper forståelsen av relaterte systemer når du bygger omfattende brasilianske applikasjoner:

RG (Registro Geral): Statlig utstedte identitetsdokumentnummer. I motsetning til CPF, som er føderalt og følger et konsistent format, varierer RG-nummer etter stat og har ingen standardisert valideringsalgoritme. Når du bygger applikasjoner for Brasil, vil du vanligvis kreve CPF for backend-validering og kan akseptere RG som sekundær identifikasjon.

CNPJ (Cadastro Nacional da Pessoa Jurídica): CPF-ekvivalenten for bedrifter, brukt for selskaper og juridiske enheter. CNPJ bruker en lignende modulo-11 valideringsalgoritme, men har 14 sifre i stedet for 11. Hvis du bygger B2B-applikasjoner for Brasil, må du håndtere både CPF (for individuelle bedriftseiere) og CNPJ (for registrerte selskaper).

PIS/PASEP/NIT: Sysselsettingsrelaterte identifikasjonsnummer brukt av Brasils trygdesystem. Disse kreves sjeldnere i generelle applikasjoner, men er essensielle for HR- og lønnssystemer.

Utviklingen av CPF i Brasil

CPF-systemet ble etablert ved Lei nº 4.862/1965 som en del av Brasils skattemoderneringsarbeid. Det som startet som en enkel skatteidentifikator har blitt Brasils facto nasjonale ID-nummer.

Viktige milepæler:

  • 1965: CPF introdusert for selvangivelse
  • 1972: Gjort obligatorisk for alle skatteytere
  • 1990-tallet: Kommersiell adopsjon akselererer—banker og forhandlere begynner å kreve CPF for transaksjoner
  • 2000-tallet: Digital transformasjon gjør CPF essensielt for nettjenester
  • 2020-tallet: CPF kreves for nesten alle offentlige tjenester, finansielle transaksjoner og til og med forbrukerkjøp

Denne utvidelsen forklarer hvorfor CPF-validering er kritisk for enhver applikasjon som betjener brasilianske brukere—det er ikke lenger bare en skatte-ID, det er hvordan brasilianere identifiserer seg i utallige kontekster. Når du tester disse systemene, er det avgjørende å ha gyldige CPF-nummer for realistiske testscenarier.

Kodeeksempler for CPF-generering og -validering

Hvis du trenger å integrere CPF-generering og -validering direkte i applikasjonen din, her er produksjonsklar implementasjon i populære språk. Hvert eksempel inkluderer både genererings- og valideringsfunksjoner slik at du kan implementere hele arbeidsflyt.

Disse implementasjonene følger den offisielle Receita Federal-algoritmen og inkluderer håndtering av grensetilfeller som nevnt tidligere (rester 0 og 1 mapper til kontrollsifre 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
19

Eksempel på bruk

cpf = generate_cpf() print(f"Generert CPF: {cpf}") print(f"Er gyldig: {validate_cpf(cpf)}")

1
2

javascript function generateCPF() { 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 validateCPF(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å bruk const cpf = generateCPF(); console.log(Generert CPF: ${cpf}); console.log(Er gyldig: ${validateCPF(cpf)});

1
2

java import java.util.Random;

public class CPFGenerator { private static final Random random = new Random();

public static String generateCPF() {
    int[] cpf = new int[11];
    for (int i = 0; i < 9; i++) {
        cpf[i] = random.nextInt(10);
    }
    cpf[9] = calculateCheckDigit(cpf, 10);
    cpf[10] = calculateCheckDigit(cpf, 11);
    return formatCPF(cpf);
}

private static int calculateCheckDigit(int[] cpf, int factor) {
    int sum = 0;
    for (int i = 0; i < factor - 1; i++) {
        sum += cpf[i] * (factor - i);
    }
    int result = 11 - (sum % 11);
    return result > 9 ? 0 : result;
}

private static String formatCPF(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 validateCPF(String cpf) {
    cpf = cpf.replaceAll("[^0-9]", "");
    if (cpf.length() != 11) return false;
    int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
    if (allEqual(numbers)) return false;
    int digit10 = calculateCheckDigit(numbers, 10);
    int digit11 = calculateCheckDigit(numbers, 11);
    return numbers[9] == digit10 && numbers[10] == digit11;
}

private static boolean allEqual(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 = generateCPF();
    System.out.println("Generert CPF: " + cpf);
    System.out.println("Er gyldig: " + validateCPF(cpf));
}

}


**Bruk av disse implementasjonene:**

- Valideringsfunksjonene håndterer både formaterte (XXX.XXX.XXX-XX) og uformaterte (XXXXXXXXXXX) inndata
- Legg til sjekker for kjente ugyldige mønstre (alle identiske sifre) i produksjonskode
- Vurder å bruke etablerte biblioteker som `validate-docbr` (Python) eller `cpf-cnpj-validator` (JavaScript) for produksjonssystemer—de håndterer kanttilfeller og er grundig testet
- Disse eksemplene er gode for å forstå algoritmen eller bygge lette implementasjoner uten eksterne avhengigheter

## Ofte stilte spørsmål om CPF-generering

### Er CPF-generatoren gratis å bruke?
Ja, dette verktøyet er helt gratis uten påkrevd registrering. Generer så mange CPF-nummer du trenger for testformål. Det er ingen bruksgrenser eller skjulte avgifter.

### Er genererte CPF-nummer knyttet til virkelige personer?
Nei. Selv om numrene er matematisk gyldige og passerer valideringsalgoritmer, er de tilfeldig generert og ikke registrert hos Brasils Receita Federal. De eksisterer utelukkende som testdata og bør kun brukes i utviklings- og testmiljøer.

### Kan jeg bruke genererte CPF-er i produksjonssystemer?
Aldri. Produksjonssystemer må bruke ekte, verifiserte CPF-er levert av faktiske brukere gjennom legitime registreringsprosesser. Bruk av genererte CPF-er i live-systemer bryter prinsippene for dataintegritet og kan forårsake alvorlige juridiske problemer i henhold til [brasiliansk databeskyttelseslov (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).

### Hvordan sikrer generatoren CPF-gyldighet?
Verktøyet implementerer Brasils offisielle CPF-valideringsalgoritme som spesifisert av Receita Federal. Den beregner begge kontrollsifre ved bruk av vektet modulo-11-formel, og sikrer at hvert generert nummer passerer standard valideringstester. Algoritmen er den samme som brukes av brasilianske statlige systemer og finansinstitusjoner.

### Hva er forskjellen mellom CPF og CNPJ?
CPF (Cadastro de Pessoas Físicas) identifiserer enkeltpersoner—borgere og innbyggere. CNPJ (Cadastro Nacional da Pessoa Jurídica) identifiserer bedrifter og juridiske enheter. Tenk på CPF som tilsvarende et personnummer i USA, mens CNPJ er som et arbeidsgiversidentifikasjonsnummer (EIN). Du trenger forskjellige generatorer for hver type.

### Er det lovlig å generere test-CPF-nummer?
Generering av CPF-nummer for legitim programvaretesting og utvikling er lovlig. Det som er ulovlig, er å bruke dem svikaktig—for å etterligne virkelige personer, begå identitetstyveri eller omgå sikkerhetstiltak. Hold genererte CPF-er tydelig merket som testdata og begrenset til ikke-produksjonsmiljøer.

### Hva med duplikate CPF-er?
Selv om det teoretisk er mulig, er duplikater ekstremt sjeldne. Det finnes omtrent 100 milliarder mulige gyldige CPF-kombinasjoner (med hensyn til kontrollsifferrestriksjoner), så sannsynligheten for å generere samme nummer to ganger er omtrent 1 av 100 milliarder per forsøk. I praktiske testscenarier vil duplikater ikke være et problem med mindre du genererer hundrevis av millioner CPF-er.

### Fungerer genererte CPF-er med valideringsbiblioteker?
Ja. Genererte CPF-er passerer validering i populære biblioteker på tvers av språk—Python's `validate-docbr`, JavaScript's `cpf-cnpj-validator`, PHP's `geekcom/validator-docs`, og andre. De tilfredsstiller de matematiske kravene disse bibliotekene sjekker. De vil imidlertid ikke passere "ekte CPF-oppslag" mot statlige databaser, noe som er nøyaktig det du vil ha for isolert testing.

### Hvorfor blir noen gyldige CPF-er avvist av min validering?
Din validator kan sjekke etter kjente ugyldige mønstre utover den matematiske algoritmen. For eksempel er CPF-er med identiske sifre (000.000.000-00, 111.111.111-11, osv.) matematisk gyldige, men blir svartelistet av de fleste brasilianske systemer fordi de er kjente testverdier. God valideringslogikk inkluderer både kontrollsifferalgoritmen og disse mønsterbaserte avvisningene.

## Juridiske og etiske hensyn

Når du bruker en **CPF-generator**, følg disse viktige retningslinjene:

1. **Kun testing:** Genererte CPF-er er utelukkende for utviklings- og testmiljøer
2. **Tydelig merking:** Merk all testdata som inneholder genererte CPF-er for å unngå forvirring med ekte data
3. **Personvernoverholdelse:** Forstå personvernlovgivning (som LGPD i Brasil) selv ved håndtering av falske identifikatorer
4. **Produksjonssystemer:** Bruk alltid ekte, verifiserte CPF-er fra autoriserte kilder i live miljøer
5. **Sikkerhetstiltak:** Implementer riktig beskyttelse for både ekte og genererte CPF-er i systemene dine
6. **Ingen etterligning:** Bruk aldri genererte nummer for å etterligne virkelige personer eller begå svindel

## Bruk av Genererte CPF-er i Testsviten

For utviklere som jobber med brasilianske applikasjoner, er pålitelige testdata absolutt nødvendig. Denne CPF-generatoren gir matematisk gyldige nummer som passerer valideringssjekker, samtidig som testingen holdes fullstendig adskilt fra virkelige brukerdata.

Husk disse nøkkelpunktene når du integrerer genererte CPF-er i arbeidsflytene dine:

- **Marker testdata tydelig** i databaseskjemaer og dokumentasjon
- **Implementer mønstersjekker** for kjente ugyldige CPF-er (alle identiske sifre) i valideringen
- **Bruk genererte CPF-er kun i ikke-produksjonsmiljøer**—staging, utvikling og CI/CD-pipeline
- **Referér til offisielle valideringsspesifikasjoner** fra [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) når du bygger din egen valideringslogikk

Klikk på genereringsknappen over for å opprette gyldige CPF-nummer for dine testbehov.

## Referanser og offisiell dokumentasjon

For autoritative opplysninger om CPF-standarder og brasilianske dataforskrifter:

1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Offisiell dokumentasjon av 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 (Statlig databehandlingstjeneste).** "Validador de CPF." Statlig 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 generell databeskyttelseslov." Juridisk rammeverk som styrer personlig databehandling i Brasil. [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.** "Endrer skattelovgivningen." Opprinnelig lovgivning som etablerer CPF-systemet. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)

5. **Finansdepartementet.** "CPF-historikk." Historisk kontekst og utvikling av CPF-systemet. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)

---

**Meta-tittel:** CPF-generator - Opprett gyldige brasilianske skatteID-er for testing
**Meta-beskrivelse:** Gratis CPF-generator oppretter gyldige brasilianske skatteID-nummer som passerer valideringsalgoritmer. Perfekt for testing av skjemaer, API-er og databaser uten å bruke virkelige personopplysninger.