Satunnaisten CPF-numeroiden generaattori testaukseen
Tuota voimassa olevia, satunnaisia CPF (Cadastro de Pessoas Físicas) numeroita testaus tarkoituksiin. Tämä työkalu luo CPFejä, jotka noudattavat virallista Brasilian muotoa ja vahvistussääntöjä, ilman että käytetään mitään oikeaa henkilökohtaista tietoa.
Generoi CPF
Dokumentaatio
CPF Generaattori
Johdanto
CPF (Cadastro de Pessoas Físicas) on ainutlaatuinen tunniste, joka myönnetään Brasilian kansalaisille ja asukkaille verotusta varten. Tämä generaattori luo voimakkaita, satunnaisia CPF-numeroita testaus tarkoituksiin. On tärkeää huomata, että nämä luodut CPF:t eivät liity todellisiin henkilöihin ja niitä tulisi käyttää vain testausympäristöissä.
CPF:n rakenne
CPF koostuu 11 numerosta:
- Ensimmäiset 9 numeroa ovat perusnumerot
- Viimeiset 2 numeroa ovat tarkistusnumeroita
Muoto on tyypillisesti esitettynä: XXX.XXX.XXX-XX
CPF:n vahvistusalgoritmi
CPF:n vahvistusalgoritmi varmistaa numeron eheyden. Näin se toimii:
- Kerro ensimmäiset 9 numeroa painoilla (10 - 2)
- Laske tulokset yhteen
- Laske yhteenlasketun arvon jaettuna 11 saatu jakojäännös
- Jos jakojäännös on alle 2, ensimmäinen tarkistusnumero on 0; muuten se on 11 miinus jakojäännös
- Toista prosessi ensimmäiselle 10 numerolle (mukaan lukien ensimmäinen tarkistusnumero) painoilla 11 - 2
- Laske toinen tarkistusnumero samalla säännöllä kuin ensimmäinen
Miten käyttää tätä generaattoria
- Napsauta "Generoi CPF" -painiketta
- Voimakas, satunnainen CPF näytetään
- Voit kopioida luodun CPF:n käytettäväksi testaus-skenaarioissasi
Kaava
Voimakkaan CPF:n luomisen kaava on seuraava:
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:
- Generoi 9 satunnaista numeroa
- Laske ensimmäinen tarkistusnumero edellä kuvattua algoritmia käyttäen
- Laske toinen tarkistusnumero
- Yhdistä kaikki numerot muodostaaksesi täydellinen CPF
Esimerkit
Tässä on joitakin esimerkkejä luoduista CPF:istä:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Käyttötapaukset
CPF-generaattori on hyödyllinen erilaisissa ohjelmistokehitys- ja testaus-skenaarioissa:
- Tietokannan testaus: Täytä testitietokannat voimakkailla CPF-numeroilla
- Lomakevalidointi: Testaa syöttövalidointia brasilialaisten käyttäjien rekisteröintilomakkeissa
- API-testaus: Käytä luotuja CPF:itä API-pyynnöissä, jotka vaativat voimakkaita brasilialaisia henkilöllisyystietoja
- Suorituskykytestaus: Generoi suuria joukkoja ainutlaatuisia, voimakkaita CPF:itä kuormitustestausta varten
- UI/UX-testaus: Varmista CPF-numeroiden oikea muotoilu ja näyttö käyttöliittymissä
Vaihtoehdot
Vaikka CPF on ensisijainen yksilötunniste Brasiliassa, on olemassa muita tunnisteita, joita voidaan käyttää tietyissä konteksteissa:
- RG (Registro Geral): Osavaltion myöntämä henkilöllisyystodistus
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Käytetään yrityksille ja oikeushenkilöille
- PIS/PASEP: Käytetään työhön liittyvissä tarkoituksissa
Historia
CPF otettiin käyttöön Brasiliassa vuonna 1965 osana laajempaa pyrkimystä modernisoida maan verojärjestelmää. Alun perin sitä käytettiin pääasiassa tuloverotusta varten, mutta ajan myötä sen käyttö laajeni monille muille alueille Brasilian byrokratiassa ja kaupankäynnissä.
Tärkeitä virstanpylväitä CPF:n historiassa:
- 1965: CPF otettiin käyttöön yksilöille
- 1972: CPF:stä tulee pakollinen kaikille veroa maksaville yksilöille
- 1990-luku: CPF:ää alettiin käyttää laajemmin kaupallisissa ja rahoitustapahtumissa
- 2000-luku: Digitaaliset järjestelmät integroivat CPF:n entistä enemmän Brasilian päivittäiseen elämään
Nykyään CPF on olennainen osa Brasilian kansalaisten ja asukkaiden vuorovaikutusta hallintopalveluiden, rahoituslaitosten ja monien kaupallisten tapahtumien kanssa.
Koodiesimerkit
Tässä on koodinpätkiä voimakkaiden ja vahvistettujen CPF:iden luomiseksi ja vahvistamiseksi eri ohjelmointikielillä:
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## Esimerkin käyttö
21cpf = generate_cpf()
22print(f"Generoitu CPF: {cpf}")
23print(f"Onko voimassa: {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// Esimerkin käyttö
23const cpf = generateCPF();
24console.log(`Generoitu CPF: ${cpf}`);
25console.log(`Onko voimassa: ${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("Generoitu CPF: " + cpf);
50 System.out.println("Onko voimassa: " + validateCPF(cpf));
51 }
52}
53
Nämä esimerkit osoittavat, kuinka generoidaan ja vahvistetaan CPF:itä Pythonissa, JavaScriptissä ja Javassa. Voit mukauttaa näitä toimintoja erityisiin tarpeisiisi tai integroida ne suurempiin järjestelmiin, jotka vaativat CPF:n käsittelyä.
Oikeudelliset ja eettiset näkökohdat
Kun käytät luotuja CPF:itä, on tärkeää pitää mielessä seuraavat seikat:
- Luotuja CPF:itä käytetään vain testaus tarkoituksiin, eikä niitä koskaan tule käyttää todellisten henkilöiden esittämiseen tai petollisiin toimintoihin.
- Merkitse selvästi kaikki testidatat, jotka sisältävät luotuja CPF:itä, estääksesi sekaannuksen todellisten henkilötietojen kanssa.
- Ole tietoinen tietosuojalainsäädännöistä ja -säännöksistä omassa lainkäyttöalueessasi käsitellessäsi jopa valehenkilöllisyystietoja.
- Tuotantoympäristöissä käytä aina todellisia, vahvistettuja CPF:itä, jotka käyttäjät tai valtuutetut lähteet tarjoavat.
- Ota käyttöön asianmukaiset turvallisuustoimenpiteet suojellaksesi sekä todellisia että luotuja CPF:itä järjestelmissäsi.
Viitteet
- 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."
Palaute
Napsauta palautetoimintoa aloittaaksesi palautteen antamisen tästä työkalusta
Liittyvät työkalut
Löydä lisää työkaluja, jotka voivat olla hyödyllisiä työnkulussasi