Hoppa till innehåll

CPF-generator - Skapa giltiga brasilianska skatteID för testning

Gratis CPF-generator skapar giltiga brasilianska skatteID-nummer som klarar valideringsalgoritmer. Perfekt för att testa formulär, API:er och databaser utan att använda riktiga personuppgifter.

Klicka för att generera ett giltigt brasilianskt CPF-nummer för testningsändamål

Laddningsberäknare...
📚

Dokumentation

CPF-generator - Skapa giltiga brasilianska skatteidentifikationsnummer för testning

Varför du behöver en CPF-generator för testning

När du utvecklar applikationer för den brasilianska marknaden stöter du snabbt på en vanlig utmaning: att testa formulär och valideringslogik utan att äventyra riktiga användardata. Där blir en CPF-generator avgörande.

CPF (Cadastro de Pessoas Físicas) är Brasiliens unika 11-siffriga identifikationsnummer som utfärdas till medborgare och invånare för skatteändamål. Detta verktyg skapar matematiskt giltiga, slumpmässiga CPF-nummer som klarar Brasiliens officiella valideringsalgoritm—perfekt för att fylla testdatabaser, validera inmatningsformulär och köra automatiserade tester utan integritetsproblem.

Kritisk begränsning: Genererade CPF:er är endast för testmiljöer. De är inte kopplade till riktiga individer och får aldrig användas i produktionssystem eller i bedrägligt syfte. Det som gör dem värdefulla är att de klarar valideringskontroller samtidigt som testdata hålls helt åtskild från verklig personlig information.

Förstå CPF-struktur och format

Ett giltigt CPF består av 11 siffror med en specifik struktur:

  • Första 9 siffrorna: Grundläggande identifieringsnummer
  • Sista 2 siffrorna: Kontrollsiffror för validering
  • Standardformat: XXX.XXX.XXX-XX (med punkter och bindestreck)

Exempel: 123.456.789-09

Kontrollsiffrorna säkerställer att CPF-numret är matematiskt giltigt, vilket förhindrar stavfel och ogiltiga poster i brasilianska system.

Hur CPF-validering fungerar

CPF-valideringsalgoritmen använder ett modulo-11-viktat kontrollsiffersystem för att säkerställa nummerintegritet. Att förstå denna algoritm är avgörande när man implementerar CPF-validering i sina applikationer.

Valideringsprocessen förklarad

Algoritmen beräknar två kontrollsiffror (de två sista siffrorna i CPF) baserat på de första nio siffrorna:

Beräkna den första kontrollsiffran:

  1. Multiplicera de första 9 siffrorna med fallande vikter (10, 9, 8, 7, 6, 5, 4, 3, 2)
  2. Summera alla multiplikationsresultat
  3. Beräkna resten när det delas med 11
  4. Om resten < 2, är kontrollsiffran 0; annars är den 11 minus resten

Beräkna den andra kontrollsiffran:

  1. Upprepa processen för de första 9 siffrorna plus den första kontrollsiffran (totalt 10 siffror)
  2. Använd vikter 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
  3. Tillämpa samma resterande logik

Denna tvåstegsvalidering fångar de flesta transkriptionsfel och förhindrar slumpmässiga nummer från att passera som giltiga CPF:er. Algoritmen är dokumenterad i Lei nº 4.862/1965, som etablerade CPF-systemet.

Varför detta är viktigt för utvecklare

När man bygger CPF-validering ser man ofta utvecklare missa kantfallet där resten är 0 eller 1—dessa ska mappas till kontrollsiffra 0, inte 10 eller 11. Detta är en vanlig källa till valideringsfel. Formeln (sum * 10 % 11) % 10 hanterar detta kantfall smidigt genom att säkerställa att resultatet aldrig överstiger 9.

Hur man använder denna CPF-generatorverktyg

Generering av giltiga test-CPF tar sekunder:

  1. Klicka på "Generera CPF"-knappen
  2. Visa det giltiga, slumpmässiga CPF-numret som visas i standardformatet XXX.XXX.XXX-XX
  3. Kopiera det genererade numret med ett klick
  4. Klistra in direkt i dina testformulär, API-förfrågningar eller databasseeder

Varje genererad CPF passerar Brasiliens officiella valideringsalgoritm, så du kan testa din valideringslogik med förtroende. Numren genereras slumpmässigt varje gång, vilket minskar risken för konflikter i dina testdataset.

Formel

Formeln för att generera en giltig CPF är följande:

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:

  1. Generera 9 slumpmässiga siffror
  2. Beräkna den första kontrollsiffran med hjälp av algoritmen som beskrivs ovan
  3. Beräkna den andra kontrollsiffran
  4. Kombinera alla siffror för att bilda den kompletta CPF:n

Exempel

Här är några exempel på genererade CPF:er:

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

Vanliga användningsfall för testning av CPF-nummer

Baserat på verkliga utvecklingsscenarier, här är när du behöver genererade CPF-nummer:

Utvecklings- och testscenarier

Databasseeding och migreringar: När du sätter upp lokala eller mellanlagringsmiljöer behöver du realistiska testdata. Genererade CPF:er låter dig skapa hundratals eller tusentals testanvändarposter utan att röra verklig personlig information. Detta är särskilt användbart när du testar databasbegränsningar och unika index på CPF-kolumner.

Formulärvalideringstestning: Brasilianska registreringsformulär kräver vanligtvis CPF-validering på både klient- och serversidan. Att testa gränsfallen—som korrekt formaterade men ogiltiga CPF:er, eller alla identiska siffror (111.111.111-11)—hjälper till att fånga valideringsfel innan de når produktionen. Genererade CPF:er ger dig giltiga testfall för att verifiera att din valideringslogik fungerar korrekt.

API-integrationstestning: När du bygger integreringar med brasilianska betalningsgateway, finansiella tjänster eller myndighets-API:er behöver du ofta giltiga CPF-nummer i dina testförfrågningar. Att använda genererade CPF:er håller din testserie oberoende från riktiga användardata.

Belastnings- och prestandatestning: För att stressa testa system som bearbetar brasilianska användardata behöver du stora volymer av unika, giltiga CPF:er. Att generera tusentals test-CPF:er låter dig simulera realistisk belastning utan integritetsproblem.

UI/UX-validering: Testa hur ditt gränssnitt hanterar CPF-visning, maskering och formatering över olika skärmstorlekar och sammanhang. Genererade CPF:er hjälper till att verifiera att din formateringslogik (att lägga till punkter och bindestreck) fungerar konsekvent.

Vanliga fallgropar att undvika

Ett misstag utvecklare ofta gör är att glömma att alla identiska siffror (som 000.000.000-00 eller 111.111.111-11) är tekniskt giltiga enligt algoritmen men avvisas av riktiga brasilianska system. När du testar, inkludera kontroller för dessa kända ogiltiga mönster även om de klarar matematisk validering.

Ett annat problem: genererade CPF:er fungerar bra för att testa valideringslogik, men de hjälper dig inte att testa faktiska CPF-sökningar mot statliga databaser. För integrationstester som frågar riktiga brasilianska myndighets-API:er behöver du använda särskilda test-CPF:er som tillhandahålls av dessa tjänster (som Serpros testmiljö).

Relaterade brasilianska identifieringssystem

Medan CPF är den primära individuella identifieraren i Brasilien hjälper förståelsen för relaterade system när man bygger omfattande brasilianska applikationer:

RG (Registro Geral): Statligt utfärdade identitetsdokumentnummer. Till skillnad från CPF, som är federalt och följer ett konsekvent format, varierar RG-nummer beroende på delstat och har ingen standardiserad valideringsalgoritm. När du bygger applikationer för Brasilien kommer du vanligtvis att kräva CPF för backend-validering och kan acceptera RG som sekundär identifiering.

CNPJ (Cadastro Nacional da Pessoa Jurídica): CPF:s motsvarighet för företag, används för företag och juridiska enheter. CNPJ använder en liknande modulo-11-valideringsalgoritm men har 14 siffror istället för 11. Om du bygger B2B-applikationer för Brasilien behöver du hantera både CPF (för enskilda företagsägare) och CNPJ (för registrerade företag).

PIS/PASEP/NIT: Sysselsättningsrelaterade identifieringsnummer som används av Brasiliens sociala trygghetssystem. Dessa krävs mindre ofta i allmänna applikationer men är väsentliga för HR- och lönesystem.

CPF:s utveckling i Brasilien

CPF-systemet etablerades av Lei nº 4.862/1965 som en del av Brasiliens skattemoderiseringsinsatser. Det som började som en enkel skatteidentifierare har blivit Brasiliens de facto nationella ID-nummer.

Viktiga milstolpar:

  • 1965: CPF introduceras för inkomstdeklaration
  • 1972: Görs obligatoriskt för alla skattebetalare
  • 1990-tal: Kommersiell adoption accelererar—banker och återförsäljare börjar kräva CPF för transaktioner
  • 2000-tal: Digital transformation gör CPF väsentligt för onlinetjänster
  • 2020-tal: CPF krävs för nästan alla statliga tjänster, finansiella transaktioner och till och med konsumentköp

Denna expansion förklarar varför CPF-validering är kritisk för alla applikationer som betjänar brasilianska användare—det är inte längre bara ett skatteID, det är hur brasilianer identifierar sig i otaliga sammanhang. När du testar dessa system är det väsentligt att ha giltiga CPF-nummer för realistiska testscenarier.

Kodexempel för CPF-generering och validering

Om du behöver integrera CPF-generering och validering direkt i din applikation, här är produktionsklara implementationer i populära språk. Varje exempel inkluderar både genererings- och valideringsfunktioner så att du kan implementera hela arbetsflödet.

Dessa implementationer följer Receita Federals officiella algoritm och inkluderar hantering av gränsfallen som nämnts tidigare (rester 0 och 1 mappas till kontrollsiffra 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

Exempelanvändning

cpf = generate_cpf() print(f"Genererad CPF: {cpf}") print(f"Är giltig: {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; }

// Exempelanvändning const cpf = generateCPF(); console.log(Genererad CPF: ${cpf}); console.log(Är giltig: ${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("Genererad CPF: " + cpf);
    System.out.println("Är giltig: " + validateCPF(cpf));
}

}


**Använda dessa implementationer:**

- Valideringsfunktionerna hanterar både formaterade (XXX.XXX.XXX-XX) och oformaterade (XXXXXXXXXXX) indata
- Lägg till kontroller för kända ogiltiga mönster (alla identiska siffror) i produktionskod
- Överväg att använda etablerade bibliotek som `validate-docbr` (Python) eller `cpf-cnpj-validator` (JavaScript) för produktionssystem—de hanterar kantscenarion och är väl testade
- Dessa exempel är utmärkta för att förstå algoritmen eller bygga lättviktiga implementationer utan externa beroenden

## Vanliga frågor om CPF-generering

### Är CPF-generatorn gratis att använda?
Ja, detta verktyg är helt gratis och kräver ingen registrering. Generera så många CPF-nummer som du behöver för testningsändamål. Det finns inga användningsbegränsningar eller dolda avgifter.

### Är genererade CPF-nummer kopplade till riktiga personer?
Nej. Även om numren är matematiskt giltiga och klarar valideringsalgoritmer, är de slumpmässigt genererade och inte registrerade hos Brasiliens Receita Federal. De existerar enbart som testdata och bör endast användas i utvecklings- och testmiljöer.

### Kan jag använda genererade CPF:er i produktionssystem?
Aldrig. Produktionssystem måste använda riktiga, verifierade CPF:er som tillhandahålls av faktiska användare genom legitima registreringsprocesser. Att använda genererade CPF:er i livesystem strider mot principer för dataintegritet och kan orsaka allvarliga juridiska problem enligt [Brasiliens dataskyddslag (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).

### Hur säkerställer generatorn CPF-validitet?
Verktyget implementerar Brasiliens officiella CPF-valideringsalgoritm enligt Receita Federal. Den beräknar båda kontrollsiffrorna med den viktade modulo-11-formeln och säkerställer att varje genererat nummer klarar standardvalideringstester. Algoritmen är densamma som används av brasilianska myndigheter och finansinstitutioner.

### Vad är skillnaden mellan CPF och CNPJ?
CPF (Cadastro de Pessoas Físicas) identifierar enskilda personer—medborgare och invånare. CNPJ (Cadastro Nacional da Pessoa Jurídica) identifierar företag och juridiska enheter. Tänk på CPF som liknande ett personnummer i USA, medan CNPJ är som ett arbetsgivaridentifikationsnummer (EIN). Du behöver olika generatorer för varje typ.

### Är det lagligt att generera test-CPF-nummer?
Att generera CPF-nummer för legitim programvarutestning och utveckling är lagligt. Vad som är olagligt är att använda dem bedrägligt—för att utge sig för att vara riktiga personer, begå identitetsstöld eller kringgå säkerhetsåtgärder. Märk genererade CPF:er tydligt som testdata och begränsa dem till icke-produktionsmiljöer.

### Hur är det med duplicerade CPF:er?
Även om det är teoretiskt möjligt är duplicerade nummer extremt ovanliga. Det finns ungefär 100 miljarder möjliga giltiga CPF-kombinationer (med hänsyn till kontrollsifferbegränsningarna), så sannolikheten att generera samma nummer två gånger är ungefär 1 på 100 miljarder per försök. I praktiska testscenarier kommer duplicerade nummer inte att vara ett problem såvida du inte genererar hundratals miljoner CPF:er.

### Fungerar genererade CPF:er med valideringsbibliotek?
Ja. Genererade CPF:er klarar validering i populära bibliotek över olika språk—Python's `validate-docbr`, JavaScript's `cpf-cnpj-validator`, PHP's `geekcom/validator-docs` och andra. De uppfyller de matematiska krav som dessa bibliotek kontrollerar. De kommer dock inte att klara "verklig CPF-sökning" mot statliga databaser, vilket är exakt vad du vill ha för isolerad testning.

### Varför blir vissa giltiga CPF:er avvisade av min validering?
Din validator kan kontrollera kända ogiltiga mönster utöver den matematiska algoritmen. Till exempel är CPF:er med identiska siffror (000.000.000-00, 111.111.111-11, etc.) matematiskt giltiga men svartlistade av de flesta brasilianska system eftersom de är kända testvärden. Bra valideringslogik inkluderar både kontrollsifferalgoritmen och dessa mönsterbaserade avvisanden.

## Juridiska och etiska överväganden

När du använder en **CPF-generator**, följ dessa viktiga riktlinjer:

1. **Endast testning:** Genererade CPF:er är strikt avsedda för utvecklings- och testmiljöer
2. **Tydlig märkning:** Märk all testdata som innehåller genererade CPF:er för att förhindra förvirring med riktiga data
3. **Sekretessefterlevnad:** Förstå dataskyddslagar (som LGPD i Brasilien) även när du hanterar falska identifierare
4. **Produktionssystem:** Använd alltid riktiga, verifierade CPF:er från auktoriserade källor i livemiljöer
5. **Säkerhetsåtgärder:** Implementera rätt skydd för både riktiga och genererade CPF:er i dina system
6. **Ingen personförfalskning:** Använd aldrig genererade nummer för att utge dig för att vara riktiga individer eller begå bedrägerier

## Använda genererade CPF-nummer i din testserie

För utvecklare som arbetar med brasilianska applikationer är tillförlitliga testdata absolut nödvändigt. Denna CPF-generator tillhandahåller matematiskt giltiga nummer som klarar valideringskontroller samtidigt som testningen hålls helt åtskild från riktiga användardata.

Kom ihåg dessa viktiga punkter när du integrerar genererade CPF-nummer i din arbetsflöde:

- **Märk testdata tydligt** i dina databasscheman och dokumentation
- **Implementera mönsterkontroller** för kända ogiltiga CPF-nummer (alla identiska siffror) i din validering
- **Använd genererade CPF-nummer endast i icke-produktionsmiljöer**—staging, utveckling och CI/CD-pipelines
- **Referera till officiella valideringsspecifikationer** från [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) när du bygger din egen valideringslogik

Klicka på generera-knappen ovanför för att skapa giltiga CPF-nummer för dina testbehov.

## Referenser och officiell dokumentation

För auktoritativ information om CPF-standarder och brasilianska dataföreskrifter:

1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Officiell dokumentation av CPF-krav och 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 (Federal Data Processing Service).** "Validador de CPF." Statlig CPF-valideringstjänst 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 allmän dataskyddslag." Rättslig ram för hantering av personuppgifter 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.** "Ändrar skattelagstiftningen." Ursprunglig lagstiftning som etablerar 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 historia." Historisk kontext och utveckling av CPF-systemet. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)

---

**Meta Title:** CPF-generator - Skapa giltiga brasilianska skatteID för testning
**Meta Description:** Gratis CPF-generator skapar giltiga brasilianska skatteID-nummer som klarar valideringsalgoritmer. Perfekt för att testa formulär, API:er och databaser utan att använda riktiga personuppgifter.