Verificate se una stringa numerica soddisfa l’algoritmo di cifra di controllo Luhn modulo 10 — lo stesso checksum usato su numeri di carte di credito, identificatori IMEI e diversi schemi di documento nazionale.
Algoritmo
Partendo dalla cifra più a destra:
- Raddoppiate ogni seconda cifra; se il doppio supera 9, sottraete 9.
- Sommate tutte le cifre (modificate e non).
- Il numero è valido se il totale è un multiplo di 10.
I caratteri non numerici vengono rimossi prima dell’elaborazione. Un input vuoto o senza cifre fallisce la validazione.
Quando usarlo
Individuate refusi di una sola cifra prima dell’invio di un pagamento, validate numeri di test in sandbox con ambito PCI oppure spiegate come i checksum rilevano errori di trascrizione senza un hashing crittografico completo.
Limiti
Superare Luhn significa solo coerenza aritmetica — non che il conto esista, sia attivo o appartenga a un determinato emittente. Alcuni identificatori aziendali validi omettono intenzionalmente Luhn. Lo strumento valida un numero alla volta e non identifica marca o paese della carta.
Esempio
Inserite i valori di esempio predefiniti del modulo e confrontate l’output con un riferimento noto; regolate un input alla volta.