Generatore di CPF valido e casuale per test e sviluppo
Genera numeri CPF (Cadastro de Pessoas Físicas) validi e casuali per scopi di test. Questo strumento crea CPF che rispettano il formato ufficiale brasiliano e le regole di validazione, senza utilizzare alcuna informazione personale reale.
Genera CPF
Documentazione
Generatore di CPF
Introduzione
Il CPF (Cadastro de Pessoas Físicas) è un identificatore unico assegnato ai cittadini e residenti brasiliani per scopi fiscali. Questo generatore crea numeri CPF validi e casuali per scopi di test. È importante notare che questi CPF generati non sono associati a persone reali e devono essere utilizzati solo in ambienti di test.
Struttura di un CPF
Un CPF è composto da 11 cifre:
- Le prime 9 cifre sono i numeri di base
- Le ultime 2 cifre sono le cifre di controllo
Il formato è tipicamente rappresentato come: XXX.XXX.XXX-XX
Algoritmo di Validazione del CPF
L'algoritmo di validazione del CPF garantisce l'integrità del numero. Ecco come funziona:
- Moltiplica le prime 9 cifre per i pesi (10 a 2)
- Somma i risultati
- Calcola il resto della somma divisa per 11
- Se il resto è inferiore a 2, la prima cifra di controllo è 0; altrimenti, è 11 meno il resto
- Ripeti il processo per le prime 10 cifre (inclusa la prima cifra di controllo) con pesi 11 a 2
- Calcola la seconda cifra di controllo utilizzando la stessa regola della prima
Come Utilizzare Questo Generatore
- Clicca sul pulsante "Genera CPF"
- Un CPF valido e casuale verrà visualizzato
- Puoi copiare il CPF generato per utilizzarlo nei tuoi scenari di test
Formula
La formula per generare un CPF valido è la seguente:
1def generate_cpf():
2 # Genera 9 cifre casuali
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Calcola la prima cifra di controllo
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 # Calcola la seconda cifra di controllo
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
Calcolo
Il generatore esegue i seguenti passaggi:
- Genera 9 cifre casuali
- Calcola la prima cifra di controllo utilizzando l'algoritmo descritto sopra
- Calcola la seconda cifra di controllo
- Combina tutte le cifre per formare il CPF completo
Esempi
Ecco alcuni esempi di CPFs generati:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Casi d'Uso
Il generatore di CPF è utile in vari scenari di sviluppo software e test:
- Test del Database: Popola i database di test con numeri CPF validi
- Validazione dei Moduli: Testa la validazione dell'input per i moduli di registrazione degli utenti brasiliani
- Test API: Utilizza i CPF generati nelle richieste API che richiedono un'identificazione brasiliana valida
- Test di Prestazioni: Genera grandi set di CPF unici e validi per il test di carico
- Test UI/UX: Assicurati che il formato e la visualizzazione dei numeri CPF siano corretti nelle interfacce utente
Alternative
Sebbene il CPF sia l'identificatore principale degli individui in Brasile, ci sono altri identificatori che possono essere utilizzati in contesti specifici:
- RG (Registro Geral): Un documento d'identità rilasciato dallo stato
- CNPJ (Cadastro Nacional da Pessoa Jurídica): Utilizzato per le imprese e le entità legali
- PIS/PASEP: Utilizzato per scopi legati all'occupazione
Storia
Il CPF è stato introdotto in Brasile nel 1965 come parte di uno sforzo più ampio per modernizzare il sistema fiscale del paese. Inizialmente, era utilizzato principalmente per scopi di imposta sul reddito, ma nel tempo il suo utilizzo si è espanso a vari altri ambiti della burocrazia e del commercio brasiliani.
Punti salienti della storia del CPF:
- 1965: Introduzione del CPF per gli individui
- 1972: Il CPF diventa obbligatorio per tutti gli individui che pagano le tasse
- Anni '90: Il CPF inizia a essere utilizzato più ampiamente nelle transazioni commerciali e finanziarie
- Anni 2000: I sistemi digitali integrano ulteriormente il CPF nella vita quotidiana in Brasile
Oggi, il CPF è una parte essenziale delle interazioni dei cittadini e residenti brasiliani con i servizi governativi, le istituzioni finanziarie e molte transazioni commerciali.
Esempi di Codice
Ecco frammenti di codice per generare e validare i CPF in vari linguaggi di programmazione:
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## Esempio di utilizzo
21cpf = generate_cpf()
22print(f"CPF generato: {cpf}")
23print(f"È valido: {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// Esempio di utilizzo
23const cpf = generateCPF();
24console.log(`CPF generato: ${cpf}`);
25console.log(`È valido: ${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("CPF generato: " + cpf);
50 System.out.println("È valido: " + validateCPF(cpf));
51 }
52}
53
Questi esempi dimostrano come generare e validare i CPF in Python, JavaScript e Java. Puoi adattare queste funzioni alle tue esigenze specifiche o integrarle in sistemi più ampi che richiedono la gestione dei CPF.
Considerazioni Legali ed Etiche
Quando si utilizzano CPF generati, è fondamentale tenere a mente i seguenti punti:
- I CPF generati sono solo per scopi di test e non devono mai essere utilizzati per impersonare persone reali o per attività fraudolente.
- Etichetta chiaramente qualsiasi dato di test contenente CPF generati per prevenire confusione con dati personali reali.
- Sii consapevole delle leggi e dei regolamenti sulla protezione dei dati nella tua giurisdizione quando gestisci anche identificatori personali falsi.
- In ambienti di produzione, utilizza sempre CPF reali e verificati forniti dagli utenti o da fonti autorizzate.
- Implementa misure di sicurezza adeguate per proteggere sia CPF reali che generati nei tuoi sistemi.
Riferimenti
- Receita Federal do Brasil. "CPF - Cadastro de Pessoas Físicas." https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf
- Serpro. "Validador di CPF." https://www.serpro.gov.br/links-fixos-superiores/validador-cpf
- Ministério da Fazenda. "Storia del CPF." https://www.gov.br/fazenda/pt-br/assuntos/receita-federal
- Lei nº 4.862, de 29 de novembro de 1965. "Modifica la legislazione dell'imposta sul reddito, adotta diverse misure di ordine fiscale e finanziario, e dà altre disposizioni."
Feedback
Clicca sul toast di feedback per iniziare a inviare feedback su questo strumento
Strumenti Correlati
Scopri altri strumenti che potrebbero essere utili per il tuo flusso di lavoro