ForHosting KIT · Matematica

Validatore dell’algoritmo di Luhn

Sappia subito se una stringa di cifre supera il controllo di Luhn modulo 10: 79927398713 lo supera. Individua qualsiasi cifra digitata male e la maggior parte degli scambi tra cifre vicine, senza affermare che il numero esista. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto

Il validatore dell’algoritmo di Luhn controlla se una stringa numerica soddisfa la nota formula di checksum modulo 10. Invii le cifre esattamente come compaiono, compresi gli zeri iniziali, e riceverà un semplice risultato valido o non valido. La capacità verifica soltanto il checksum: non identifica l’emittente, non conferma l’esistenza di un conto e non contatta servizi esterni. Gli input con caratteri diversi dalle cifre vengono rifiutati esplicitamente anziché ripuliti in silenzio; l’automazione resta così prevedibile e gli errori di formato emergono prima di raggiungere un altro sistema.

Che cosa indica davvero un risultato Luhn

Il checksum di Luhn è una regola compatta per rilevare errori nelle sequenze di cifre decimali. Partendo da destra, l’algoritmo lascia invariata la cifra di controllo, raddoppia una cifra ogni due, sottrae nove quando il raddoppio produce due cifre e somma i valori ottenuti. Il numero è valido quando il totale è divisibile per dieci.

Questo metodo rileva ogni modifica accidentale di una singola cifra e molte comuni trasposizioni adiacenti, risultando utile contro gli errori di digitazione e copia. Un esito valido non dimostra che il numero sia stato emesso, appartenga a qualcuno, sia attivo o possa essere usato in una transazione. Indica soltanto che la stringa fornita è coerente con la formula di Luhn.

La distinzione è importante nelle interfacce e nei flussi dati: presenti il risultato come validità del checksum, non come verifica dell’identità o del conto. Il validatore conserva la rappresentazione testuale, zeri iniziali inclusi, e non la converte mai in un numero JavaScript; gli identificatori lunghi rimangono quindi esatti senza perdere cifre per i limiti della precisione numerica.

Come preparare l’input e interpretare gli errori

Invii il valore nel campo <code>number</code> come stringa non vuota contenente soltanto i caratteri da zero a nove. Spazi, trattini, segni più, punti decimali, interruzioni di riga e lettere vengono rifiutati come input non valido. Questo comportamento rigoroso è intenzionale.

Eliminare la punteggiatura in silenzio può nascondere un difetto di formattazione a monte, cambiare il significato dei dati copiati o far sembrare concordi due sistemi che hanno ricevuto testi diversi. Se la fonte mostra valori raggruppati, li normalizzi deliberatamente nel Suo flusso prima di chiamare questa capacità e conservi l’originale quando serve una traccia di controllo. Non converta prima la stringa in un intero: potrebbe rimuovere gli zeri iniziali e arrotondare i valori lunghi.

Una chiamata riuscita restituisce sempre un oggetto con un campo booleano chiamato <code>valid</code>. <code>true</code> indica che il totale è divisibile per dieci; <code>false</code> indica un input sintatticamente corretto che non supera il checksum. Un errore di input è diverso da un risultato falso e richiede normalmente correzione o revisione.

Come usare la convalida deterministica nelle applicazioni

Usi questo validatore nei punti in cui le stringhe numeriche entrano in un sistema: invio di moduli, importazioni in blocco, migrazioni, generazione di dati di prova o test d’integrazione. Nei moduli interattivi, esegua la versione nel browser al termine dell’inserimento e chiarisca che il controllo rileva probabili errori senza provare l’esistenza di un conto. In un’importazione, tratti gli errori di caratteri come record malformati e i risultati falsi come record ben formati con checksum non corrispondente.

Separare i casi produce report migliori e conserva diagnostica utile. L’algoritmo è deterministico, non usa la rete, non legge l’orologio e non genera valori casuali; input identici producono sempre output identici. Inoltre, non applica regole di lunghezza o prefisso specifiche di un emittente: ogni stringa di cifre non vuota riceve lo stesso calcolo.

Se il Suo dominio impone lunghezze, prefissi, titolarità o stato in tempo reale, applichi tali regole separatamente.

Individuare errori di inserimento

Controlli una stringa all’invio del modulo e distingua un checksum errato da un input con lettere o segni.

Convalidare importazioni in blocco

Applichi la stessa regola deterministica a ogni record in ingresso prima dell’elaborazione successiva.

Creare dati di prova affidabili

Confermi che stringhe valide e non valide si comportino sempre allo stesso modo nei test d’integrazione senza dipendere dalla rete.

Che cosa significa un risultato valido?

La stringa soddisfa il checksum modulo 10 di Luhn. Non conferma emissione, titolarità, stato del conto o idoneità a una transazione.

L’input può contenere spazi o trattini?

No. Deve contenere soltanto cifre. Normalizzi esplicitamente i valori formattati prima dell’invio.

Gli zeri iniziali vengono conservati?

Sì. L’input viene trattato come stringa e non è mai convertito in un tipo numerico.

Il validatore richiede una lunghezza precisa?

No. Valuta qualsiasi stringa non vuota di cifre. Le regole di lunghezza del dominio vanno applicate separatamente.

Come si calcola il controllo di Luhn?

Partendo da destra, si lascia invariata l'ultima cifra e si raddoppia una cifra ogni due tra le successive. Se il doppio dà un numero di due cifre, gli si sottrae 9. Si somma tutto: la stringa è valida se il totale è divisibile per 10.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/math/luhn

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/math/luhn \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"79927398713"}'
{
  "number": "79927398713"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.luhn",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Come usare la convalida deterministica nelle applicazioni

Le chiamate API usano il prezzo base pubblicato di $0.002.

Quanto costa una chiamata API?

Ogni richiesta usa il prezzo base pubblicato di $0.002. L’esperienza nel browser può eseguire localmente la stessa logica deterministica.

Leggi la documentazione completa del KIT →