CPF Generaator testimiseks: kehtivate numbrite loomine
Generaator, mis loob kehtivaid, juhuslikke CPF (Cadastro de Pessoas Físicas) numbreid testimise eesmärkidel. See tööriist loob CPF-e, mis vastavad ametlikule Brasiilia formaadile ja valideerimisreeglitele, ilma et kasutataks tegelikke isikuandmeid.
Genereeri CPF
Dokumentatsioon
CPF Generaator
Sissejuhatus
CPF (Cadastro de Pessoas Físicas) on ainulaadne identifikaator, mis on määratud Brasiilia kodanikele ja elanikele maksustamise eesmärkidel. See generaator loob kehtivaid, juhuslikke CPF-numbreid testimise eesmärkidel. Oluline on märkida, et need genereeritud CPF-d ei ole seotud reaalse isikuga ja neid tuleks kasutada ainult testimiskeskkondades.
CPF Struktuur
CPF koosneb 11 numbrist:
- Esimesed 9 numbrit on põhinumbrid
- Viimased 2 numbrit on kontrollnumbrid
Formaat on tavaliselt esitatud järgmiselt: XXX.XXX.XXX-XX
CPF Valideerimise Algoritm
CPF valideerimise algoritm tagab numbri terviklikkuse. Siin on, kuidas see töötab:
- Korruta esimesed 9 numbrit kaaludega (10 kuni 2)
- Liida tulemused
- Arvuta jääk, jagades summa 11-ga
- Kui jääk on väiksem kui 2, on esimene kontrollnumber 0; vastasel juhul on see 11 miinus jääk
- Korda protsessi esimese 10 numbri (sealhulgas esimene kontrollnumber) jaoks kaaludega 11 kuni 2
- Arvuta teine kontrollnumber sama reegli järgi nagu esimene
Kuidas Seda Generaatorit Kasutada
- Klõpsake nuppu "Generaatori CPF"
- Kuvatakse kehtiv, juhuslik CPF
- Saate genereeritud CPF-i kopeerida, et kasutada seda oma testimistsenaariumides
Valem
Kehtiva CPF genereerimise valem on järgmine:
1def generate_cpf():
2 # Generaator 9 juhuslikku numbrit
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Arvuta esimene kontrollnumber
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 # Arvuta teine kontrollnumber
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
Arvutus
Generaator täidab järgmisi samme:
- Generaator 9 juhuslikku numbrit
- Arvuta esimene kontrollnumber, kasutades ülaltoodud algoritmi
- Arvuta teine kontrollnumber
- Ühenda kõik numbrid, et moodustada täispikk CPF
Näited
Siin on mõned genereeritud CPF-d:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Kasutuse Näited
CPF generaator on kasulik erinevates tarkvaraarenduse ja testimise stsenaariumides:
- Andmebaasi testimine: Täitke testandmebaasid kehtivate CPF-numbritega
- Vormide valideerimine: Testige sisendi valideerimist Brasiilia kasutajate registreerimisvormides
- API testimine: Kasutage genereeritud CPF-e API päringutes, mis nõuavad kehtivat Brasiilia identifitseerimist
- Tulemuslikkuse testimine: Genereerige suured komplektid unikaalsetest, kehtivatest CPF-dest koormustestimiseks
- UI/UX testimine: Veenduge, et CPF-numbrite õige vormindamine ja kuvamine kasutajaliidestes
Alternatiivid
Kuigi CPF on peamine isiklik identifikaator Brasiilias, võivad teatud kontekstides olla kasutusel ka teised identifikaatorid:
- RG (Registro Geral): Osariigi välja antud isikut tõendav dokument
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Kasutatakse ettevõtete ja juriidiliste isikute jaoks
- PIS/PASEP: Kasutatakse tööalaste eesmärkide jaoks
Ajalugu
CPF tutvustati Brasiilias 1965. aastal osana laiemast pingutusest moderniseerida riigi maksusüsteemi. Alguses kasutati seda peamiselt tulumaksu eesmärkidel, kuid aja jooksul laienes selle kasutamine mitmesugustes Brasiilia bürokraatia ja kaubanduse valdkondades.
Olulised verstapostid CPF ajaloos:
- 1965: CPF tutvustatakse isikutele
- 1972: CPF-st saab kohustuslik kõigile maksustatavatele isikutele
- 1990ndad: CPF hakkab laiemalt kasutusele võtma kaubandus- ja rahandustehingutes
- 2000ndad: Digitaalsed süsteemid integreerivad CPF-i veelgi rohkem Brasiilia igapäevaellu
Tänapäeval on CPF oluline osa Brasiilia kodanike ja elanike suhtlemisest valitsusteenuste, finantsasutuste ja paljude kaubandustehingute kaudu.
Koodinäited
Siin on koodilõigud CPF-de genereerimiseks ja valideerimiseks erinevates programmeerimiskeeltes:
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## Näidis kasutamine
21cpf = generate_cpf()
22print(f"Genereeritud CPF: {cpf}")
23print(f"Kas on kehtiv: {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// Näidis kasutamine
23const cpf = generateCPF();
24console.log(`Genereeritud CPF: ${cpf}`);
25console.log(`Kas on kehtiv: ${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("Genereeritud CPF: " + cpf);
50 System.out.println("Kas on kehtiv: " + validateCPF(cpf));
51 }
52}
53
Need näited demonstreerivad, kuidas genereerida ja valideerida CPF-e Pythonis, JavaScriptis ja Java-s. Saate neid funktsioone kohandada vastavalt oma konkreetsetele vajadustele või integreerida need suurematesse süsteemidesse, mis nõuavad CPF-i käsitlemist.
Õiguslikud ja Eetilised Kaalutlused
Genereeritud CPF-de kasutamisel on oluline meeles pidada järgmisi punkte:
- Genereeritud CPF-d on mõeldud ainult testimiseks ja neid ei tohi kunagi kasutada reaalse isiku petmiseks või petturlike tegevuste jaoks.
- Selgelt märgistage kõik testandmed, mis sisaldavad genereeritud CPF-e, et vältida segadust reaalse isikuandmega.
- Olge teadlik andmekaitse seadustest ja regulatsioonidest oma jurisdiktsioonis, kui käsitlete isegi vale isiku identifikaatoreid.
- Tootmis keskkondades kasutage alati reaalseid, kinnitatud CPF-e, mis on esitatud kasutajate või volitatud allikate poolt.
- Rakendage nõuetekohased turvameetmed, et kaitsta nii reaalseid kui ka genereeritud CPF-e oma süsteemides.
Viidatud Allikad
- 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. "Ajalugu CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
- Seadus nr 4.862, 29. novembril 1965. "Muudab tulumaksu seadust, võtab kasutusele mitmesuguseid maksustamis- ja rahandusalaseid meetmeid ning teeb muid sätteid."
Tagasiside
Kliki tagasiside teavitusele, et alustada tagasiside andmist selle tööriista kohta
Seotud tööriistad
Avasta rohkem tööriistu, mis võivad olla kasulikud sinu töövoo jaoks