Siirry sisältöön

CPF-generaattori - Luo kelvollisia brasilialaisia verotunnuksia testaukseen

Ilmainen CPF-generaattori luo kelvollisia brasilialaisia verotunnuksia, jotka läpäisevät validointialgoritmit. Täydellinen lomakkeiden, rajapintojen ja tietokantojen testaamiseen ilman oikeiden henkilötietojen käyttöä.

Napsauta luodaksesi kelvollisen brasilialaisen CPF-numeron testausta varten

Latauslaskuri...
📚

Dokumentaatio

CPF-generaattori - Luo kelvollisia brasilialaisia verotunnuksia testausta varten

Miksi tarvitset CPF-generaattorin testaamiseen

Kun kehität sovelluksia Brasilian markkinoille, törmäät pian yleiseen haasteeseen: testata lomakkeita ja validointologiikkaa vaarantamatta todellisia käyttäjätietoja. Siinä CPF-generaattori tulee tarpeeseen.

CPF (Cadastro de Pessoas Físicas) on Brasilian yksilöllinen 11-numeroinen tunnistenumero, joka myönnetään kansalaisille ja asukkaille verotuksellisiin tarkoituksiin. Tämä työkalu luo matemaattisesti valideja, satunnaisia CPF-numeroita, jotka läpäisevät Brasilian virallisen validointialgorytmin – täydellinen testikantojen täyttämiseen, syöttölomakkeiden validointiin ja automatisoitujen testien suorittamiseen ilman tietosuojahuolia.

Kriittinen rajoitus: Generoidut CPF:t ovat ainoastaan testausympäristöjä varten. Ne eivät liity todellisiin henkilöihin, eikä niitä saa koskaan käyttää tuotantojärjestelmissä tai petollisiin tarkoituksiin. Niiden arvo piilee siinä, että ne läpäisevät validointitarkistukset samalla pitäen testiaineistosi täysin erillään todellisista henkilötiedoista.

CPF-rakenteen ja -muodon ymmärtäminen

Kelvollinen CPF koostuu 11 numerosta tietyllä rakenteella:

  • Ensimmäiset 9 numeroa: Perus-tunnistenumerot
  • Viimeiset 2 numeroa: Tarkistusnumerot validointia varten
  • Vakiomuoto: XXX.XXX.XXX-XX (pisteillä ja yhdysmerkillä)

Esimerkki: 123.456.789-09

Tarkistusnumerot varmistavat, että CPF-numero on matemaattisesti pätevä, estäen kirjoitusvirheet ja virheelliset syötteet brasialaisissa järjestelmissä.

Miten CPF-validointi toimii

CPF-validointialgoritmissa käytetään modulo-11-painotettua tarkistenumeroa varmistamaan numeron eheys. Tämän algoritmin ymmärtäminen on ratkaisevan tärkeää CPF-validoinnin toteuttamisessa sovelluksissasi.

Validointiprosessi selitettynä

Algoritmi laskee kaksi tarkistenumeroa (CPF:n viimeiset kaksi numeroa) perustuen ensimmäisiin yhdeksään numeroon:

Ensimmäisen tarkistenumeron laskeminen:

  1. Kerro ensimmäiset 9 numeroa laskevilla painokertoimilla (10, 9, 8, 7, 6, 5, 4, 3, 2)
  2. Laske yhteen kaikki kertolaskun tulokset
  3. Laske jakojäännös jaettaessa 11:llä
  4. Jos jakojäännös < 2, tarkistenumero on 0; muuten se on 11 miinus jakojäännös

Toisen tarkistenumeron laskeminen:

  1. Toista prosessi ensimmäisille 9 numerolle plus ensimmäinen tarkistenumero (yhteensä 10 numeroa)
  2. Käytä painokertoimia 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
  3. Sovella samaa jakojäännöksen logiikkaa

Tämä kaksivaiheinen validointi havaitsee useimmat litterointivirheet ja estää satunnaisia numeroita läpäisemästä CPF-validointia. Algoritmi on dokumentoitu Lei nº 4.862/1965:ssä, joka perusti CPF-järjestelmän.

Miksi tämä on tärkeää kehittäjille

Kun rakennat CPF-validointia, kehittäjät usein ohittavat reunatapauksen, jossa jakojäännös on 0 tai 1 - nämä tulisi yhdistää tarkistenumeroon 0, ei 10 tai 11. Tämä on yleinen validointivirheiden lähde. Kaava (sum * 10 % 11) % 10 käsittelee tämän reunatapauksen sujuvasti varmistaen, että tulos ei koskaan ylitä 9:ää.

Kuinka käyttää tätä CPF-generaattorityökalua

Kelvollisten testaus-CPF:ien luominen kestää sekunteja:

  1. Klikkaa "Generoi CPF" -painiketta
  2. Näytä kelvollinen, satunnainen CPF-numero näytettynä vakiomuodossa XXX.XXX.XXX-XX
  3. Kopioi generoitu numero yhdellä klikkauksella
  4. Liitä suoraan testilomakkeisiisi, API-pyyntöihisi tai tietokantasiemeniin

Jokainen generoitu CPF läpäisee Brasilian virallisen validointialgorytmin, joten voit testata validointilokiikkasi luottavaisesti. Numerot generoidaan satunnaisesti joka kerta, mikä vähentää konfliktien mahdollisuutta testiaineistossasi.

Kaava

CPF:n generoimiseen käytetään seuraavaa kaavaa:

1def generate_cpf():
2    # Generoi 9 satunnaista numeroa
3    base_cpf = [random.randint(0, 9) for _ in range(9)]
4    
5    # Laske ensimmäinen tarkistusnumero
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    # Laske toinen tarkistusnumero
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

Laskenta

Generaattori suorittaa seuraavat vaiheet:

  1. Generoi 9 satunnaista numeroa
  2. Laske ensimmäinen tarkistusnumero yllä kuvatulla algoritmilla
  3. Laske toinen tarkistusnumero
  4. Yhdistä kaikki numerot täydellisen CPF:n muodostamiseksi

Esimerkit

Tässä on joitakin esimerkkejä generoiduista CPF:istä:

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

Yleiset käyttötapaukset CPF-numeroiden testaamiseen

Todellisuuden kehitysskenaariot huomioiden, tässä on tilanteet, joissa tarvitset generoituja CPF-numeroita:

Kehitys- ja testausskenaariot

Tietokannan täyttö ja migraatiot: Paikallisia tai staging-ympäristöjä luodessa tarvitset realistisia testidatoja. Generoidut CPF:t mahdollistavat satojen tai tuhansien testikayttäjätietueiden luomisen koskematta oikeisiin henkilötietoihin. Tämä on erityisen hyödyllistä testattaessa tietokantarajoitteita ja CPF-sarakkeiden yksilöllisiä indeksejä.

Lomakkeen validointitestaus: Brasilialaisten rekisteröintilomakkeiden täytyy tyypillisesti validoida CPF sekä asiakaspuolella että palvelinpuolella. Reunatapausten testaaminen - kuten oikein muotoillut mutta virheelliset CPF:t tai kaikki identtiset numerot (111.111.111-11) - auttaa löytämään validointivirheet ennen tuotantoa. Generoidut CPF:t tarjoavat kelvollisia testitapauksia validointologiikan oikeellisuuden varmistamiseen.

API-integraatiotestaus: Rakennettaessa integraatioita brasilialaisten maksujärjestelmien, rahoituspalveluiden tai valtion API:en kanssa, tarvitset usein kelvollisia CPF-numeroita testipyyntöihisi. Generoitujen CPF:ien käyttö pitää testisarjasi riippumattomana oikeista käyttäjätiedoista.

Kuormitus- ja suorituskykytestaus: Järjestelmien kuormitustestaamiseen, jotka käsittelevät brasilialaisia käyttäjätietoja, tarvitset suuren määrän yksilöllisiä, kelvollisia CPF:iä. Tuhansien testCPF:ien generointi mahdollistaa realistisen kuormituksen simuloinnin ilman tietosuojahuolia.

Käyttöliittymän/käyttökokemuksen validointi: Testaa, miten käyttöliittymäsi käsittelee CPF:n näyttämistä, peittämistä ja muotoilua eri näyttökoissa ja yhteyksissä. Generoidut CPF:t auttavat varmistamaan, että muotoilulogiikkasi (pisteiden ja väliviivojen lisääminen) toimii johdonmukaisesti.

Yleiset sudenkuopat, joita tulee välttää

Yksi kehittäjien yleinen virhe on unohtaa, että kaikki identtiset numerot (kuten 000.000.000-00 tai 111.111.111-11) ovat teknisesti algoritmin mukaan kelvollisia, mutta brasilialaisten järjestelmien hylkäämiä. Testatessa tulee sisällyttää tarkistukset näille tunnetuille virheellisille muodoille, vaikka ne läpäisevätkin matemaattisen validoinnin.

Toinen ongelma: generoidut CPF:t toimivat hyvin validointilogiikan testaamiseen, mutta ne eivät auta testaamaan todellisia CPF-hakuja valtion tietokannoista. Integraatiotesteissä, jotka kyselevät brasilialaisia valtion API:ja, tarvitset näiden palveluiden tarjoamat nimetyt testikäyttöön tarkoitetut CPF:t (kuten Serpron testiympäristö).

(Käännös jatkuu seuraavissa osioissa...)

Esimerkkikäyttö

cpf = generate_cpf() print(f"Luotu CPF: {cpf}") print(f"Onko validi: {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; }

// Esimerkkikäyttö const cpf = generateCPF(); console.log(Luotu CPF: ${cpf}); console.log(Onko validi: ${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("Luotu CPF: " + cpf);
    System.out.println("Onko validi: " + validateCPF(cpf));
}

}


**Näiden toteutusten käyttäminen:**

- Validointifunktiot käsittelevät sekä muotoillut (XXX.XXX.XXX-XX) että muotoilemattomat (XXXXXXXXXXX) syötteet
- Lisää tarkistukset tunnetuille virheellisille kuvioille (kaikki identtiset numerot) tuotantokoodissa
- Harkitse vakiintuneiden kirjastojen kuten `validate-docbr` (Python) tai `cpf-cnpj-validator` (JavaScript) käyttöä tuotantojärjestelmissä - ne käsittelevät reunatapaukset ja ovat hyvin testattuja
- Nämä esimerkit ovat erinomaisia algoritmin ymmärtämiseen tai kevyiden toteutusten rakentamiseen ilman ulkoisia riippuvuuksia

## Usein kysytyt kysymykset CPF:n luomisesta

### Onko CPF-generaattori ilmainen käyttää?
Kyllä, tämä työkalu on täysin ilmainen eikä vaadi rekisteröitymistä. Luo niin monta CPF-numeroa kuin tarvitset testaustarkoituksiin. Käytölle ei ole rajoituksia eikä piilotettuja maksuja.

### Ovatko luodut CPF-numerot yhteydessä todellisiin henkilöihin?
Ei. Vaikka numerot ovat matemaattisesti valideja ja läpäisevät validointialgoritmit, ne on luotu satunnaisesti eivätkä ole rekisteröityjä Brasilian Receita Federalissa. Ne ovat olemassa ainoastaan testidatana ja niitä tulee käyttää vain kehitys- ja testausympäristöissä.

### Voinko käyttää luotuja CPF-numeroita tuotantojärjestelmissä?
Ei koskaan. Tuotantojärjestelmien tulee käyttää ainoastaan aitoja, todennettuja CPF-numeroita, jotka on saatu käyttäjiltä laillisen rekisteröintiprosessin kautta. Luotujen CPF-numeroiden käyttö live-järjestelmissä rikkoo tietoeheyden periaatteita ja voi aiheuttaa vakavia oikeudellisia ongelmia [Brasilian tietosuojalain (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd) mukaan.

### Miten generaattori varmistaa CPF:n kelpoisuuden?
Työkalu toteuttaa Brasilian virallisen CPF-validointialalgoritmin Receita Federalin määrittelemänä. Se laskee molemmat tarkistenumerot painotetulla modulo-11-kaavalla, varmistaen, että jokainen luotu numero läpäisee standardiset validointitestit. Algoritmi on sama, jota brasilialaisten valtiollisten järjestelmien ja rahoituslaitosten käytetään.

### Mikä on ero CPF:n ja CNPJ:n välillä?
CPF (Cadastro de Pessoas Físicas) tunnistaa yksittäisiä henkilöitä - kansalaisia ja asukkaita. CNPJ (Cadastro Nacional da Pessoa Jurídica) tunnistaa yrityksiä ja oikeushenkilöitä. Ajattele CPF:ää samankaltaisena kuin Yhdysvaltojen Social Security Number, kun taas CNPJ on kuin Employer Identification Number (EIN). Tarvitset erilaisia generaattoreita kummallekin tyypille.

### Onko CPF-numeroiden luominen laillista?
CPF-numeroiden luominen oikeutettuja ohjelmistotestaus- ja kehitystarkoituksia varten on laillista. Laitonta on käyttää niitä petollisesti - henkilöllisyyden jäljittelyyn, henkilöllisyysvarkauksiin tai turvatoimien kiertämiseen. Pidä luodut CPF-numerot selkeästi merkittyinä testidataksi ja rajoitettuna ei-tuotannollisiin ympäristöihin.

### Entä päällekkäiset CPF:t?
Vaikka teoreettisesti mahdollista, päällekkäisyydet ovat erittäin harvinaisia. On olemassa noin 100 miljardia mahdollista validia CPF-yhdistelmää (ottaen huomioon tarkistenumerorajoitukset), joten todennäköisyys luoda sama numero kahdesti on noin 1/100 miljardiin per yritys. Käytännön testaustilanteissa päällekkäisyydet eivät ole ongelma, ellet ole luomassa satoja miljoonia CPF-numeroita.

### Toimivatko luodut CPF:t validointikehyksissä?
Kyllä. Luodut CPF:t läpäisevät validoinnin suosituissa kirjastoissa eri kielissä - Python'in `validate-docbr`, JavaScriptin `cpf-cnpj-validator`, PHP:n `geekcom/validator-docs` ja muissa. Ne täyttävät näiden kirjastojen matemaattiset vaatimukset. Ne eivät kuitenkaan läpäise "aito CPF -tarkistus" -testejä valtiollisissa tietokannoissa, mikä on juuri sitä mitä halutaan eristetyssä testauksessa.

### Miksi jotkut kelvolliset CPF:t hylätään validoinnissani?
Validaattorisi saattaa tarkistaa tunnettuja virheellisiä kuvioita matemaattisen algoritmin lisäksi. Esimerkiksi CPF:t, joissa on kaikki samat numerot (000.000.000-00, 111.111.111-11 jne.) ovat matemaattisesti valideja, mutta useimmat brasilialaiset järjestelmät hylkäävät ne, koska ne ovat tunnettuja testitietoja. Hyvä validointilogi sisältää sekä tarkistenumeroalgoritmin että näihin kuvioihin perustuvat hylkäämiset.

## Oikeudelliset ja eettiset näkökohdat

Kun käytät **CPF-generaattoria**, noudata näitä tärkeitä ohjeita:

1. **Vain testaaminen:** Generoidut CPF:t ovat ehdottomasti tarkoitettu kehitys- ja testausympäristöihin
2. **Selkeä merkintä:** Merkitse kaikki testitiedot, jotka sisältävät generoituja CPF:iä, jotta ne eivät sekoitu oikeisiin tietoihin
3. **Tietosuojan noudattaminen:** Ymmärrä tietosuojalait (kuten LGPD Brasiliassa) myös käsiteltäessä keinotekoisia tunnisteita
4. **Tuotantojärjestelmät:** Käytä aina aitoja, vahvistettuja CPF:iä valtuutetuista lähteistä live-ympäristöissä
5. **Turvallisuustoimenpiteet:** Toteuta asianmukaiset suojaustoimenpiteet sekä aidoille että generoiduille CPF:ille järjestelmissäsi
6. **Ei henkilöllisyyden väärinkäyttöä:** Älä koskaan käytä generoituja numeroita todellisten henkilöiden henkilöllisyyden jäljittelemi­seen tai petoksiin

## Generoitujen CPF-tunnusten käyttäminen testisarjassasi

Brasilialaisia sovelluksia kehittäville kehittäjille luotettava testausdata on ehdoton vaatimus. Tämä CPF-generaattori tarjoaa matemaattisesti validit numerot, jotka läpäisevät tarkistukset samalla pitäen testisi täysin erillään todellisista käyttäjätiedoista.

Muista nämä avainasiat integroidessasi generoituja CPF-tunnuksia työnkulkuusi:

- **Merkitse testausdata selkeästi** tietokantaskeemoissasi ja dokumentaatiossasi
- **Toteuta kaavatarkistukset** tunnetuille virheellisille CPF-tunnuksille (kaikki identtiset numerot) validoinnissasi
- **Käytä generoituja CPF-tunnuksia vain ei-tuotantoympäristöissä**—staging, kehitys ja CI/CD-putket
- **Viittaa virallisiin validointimäärittelyihin** [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) rakentaessasi omaa validointologiikkaasi

Napsauta yllä olevaa generointipainiketta luodaksesi valideja CPF-tunnuksia testaustarpeisiisi.

## Viitteet ja viralliset dokumentaatiot

Luotettavaa tietoa CPF-standardeista ja brasilialaista tietosuojakäytännöistä:

1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Virallinen dokumentaatio CPF-vaatimuksista ja validoinnista. [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 (Liittovaltion tiedonkäsittelypalvelu).** "Validador de CPF." Valtion CPF-validointipalvelu testausympäristöllä. [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).** "Brasilian yleinen tietosuojalaki." Oikeudellinen kehys henkilötietojen käsittelylle Brasiliassa. [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.** "Muuttaa tuloverotusta koskevaa lainsäädäntöä." Alkuperäinen lainsäädäntö, joka perustaa CPF-järjestelmän. [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:n historia." Historiallinen konteksti ja CPF-järjestelmän kehitys. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)

---

**Meta-otsikko:** CPF-generaattori - Luo kelvollisia brasilialaisia verotunnuksia testaukseen
**Meta-kuvaus:** Ilmainen CPF-generaattori luo kelvollisia brasilialaisia verotunnuksia, jotka läpäisevät validointialgoritmit. Täydellinen lomakkeiden, API:en ja tietokantojen testaamiseen ilman todellisten henkilötietojen käyttöä.