Struttura del CF a 16 caratteri. Posizioni 1-3: consonanti del cognome (se meno di 3, vocali; se ancora meno, padding X). Posizioni 4-6: consonanti del nome (regola speciale: se 4 o più consonanti, prendi la 1a, 3a, 4a; altrimenti tutte le consonanti + vocali). Posizioni 7-8: ultime due cifre dell'anno di nascita. Posizione 9: lettera del mese (gennaio=A, febbraio=B, marzo=C, aprile=D, maggio=E, giugno=H, luglio=L, agosto=M, settembre=P, ottobre=R, novembre=S, dicembre=T). Posizioni 10-11: giorno di nascita (per le donne +40, quindi una donna nata il 15 ha cifre 55). Posizioni 12-15: codice catastale del comune (consonante + 3 cifre, es. H501 = Roma). Posizione 16: CIN (Carattere di Controllo Internazionale).
CIN: come si calcola. I primi 15 caratteri vengono letti uno alla volta. Le posizioni dispari (1, 3, 5..., 15) usano una tabella di conversione specifica (lettera/cifra -> numero), idem per le pari (2, 4..., 14) con tabella diversa. La somma totale modulo 26 -> lettera A-Z come CIN. Esempio: per RSSMRA80A01H501 il CIN è U. Inserire 16 caratteri sbagliati -> CIN sbagliato. Il tool calcola CIN dei primi 15 e lo confronta con il 16esimo per validazione.
Omocodie: il problema delle collisioni. Quando due persone hanno cognome+nome+data+sesso+comune identici (es. due Mario Rossi nati lo stesso giorno nello stesso comune), il loro CF teorico coincide. Per evitarlo, l'Agenzia delle Entrate genera 128 varianti dello stesso CF sostituendo cifre numeriche con lettere predefinite, in posizioni specifiche: 7, 8 (anno), 10, 11 (giorno), 13, 14, 15 (codice catastale). Mapping: 0->L, 1->M, 2->N, 3->P, 4->Q, 5->R, 6->S, 7->T, 8->U, 9->V. Il primo collidente prende la variante 0 (cifre originali); il secondo riceve una omocoda con il valore numerico più alto trasformato (es. anno 80 -> 8L diventa UL); e così via fino a 128 combinazioni teoriche.
Limiti del tool: non valida l'esistenza reale. Il tool verifica solo la correttezza formale: la data di nascita esiste? Il codice catastale è un codice valido nel formato (lettera + 3 cifre)? Il CIN è corretto? NON verifica se quel CF esiste davvero all'Agenzia delle Entrate (per farlo servirebbe l'integrazione con il servizio Verifica CF/Partita IVA del Fisco italiano, che richiede SPID/CNS o credenziali Entratel). Il caso d'uso è quindi: generare CF teoricamente corretti per testing/anonymizzazione/calcolo manuale, validare CF già esistenti, supportare professionisti che gestiscono anagrafiche.