QNA > R > Ricarica Mobile: Come Fanno Le Compagnie Di Telecomunicazione A Generare I Codici Per Le Ricariche?

Ricarica mobile: Come fanno le compagnie di telecomunicazione a generare i codici per le ricariche?

Domanda interessante. Penso che le informazioni sull'algoritmo esatto usato da una compagnia non saranno disponibili nel pubblico dominio. Tuttavia cercherò di fare un'ipotesi educata.

Qualunque buon generatore di numeri casuali può fare il lavoro, ma se stanno cercando di essere scientifici, useranno un algoritmo che produce numeri con una certa distanza minima di Hamming.

La distanza di Hamming tra due stringhe della stessa lunghezza è il numero di caratteri che devono essere cambiati per rendere una stringa identica all'altra.

Esempio:
La distanza di Hamming tra

  • FISH e DISH è 1
  • MUMBLE e BUBBLE è 2


Ci sono diversi casi in cui cambiare una singola lettera o cifra in un codice può portare a risultati indesiderati. Tali applicazioni fanno uso di codici di rilevamento degli errori in modo che anche se viene inserito un codice sbagliato, il sistema può almeno rilevare l'errore[1] e gestirlo in modo appropriato (ad esempio chiedendo all'utente di inserire nuovamente il codice).

Algoritmi per la generazione di codici di rilevamento degli errori generano nuovi codici più lunghi per ogni codice originale, con una certa distanza minima di Hamming.

O meglio ancora, potrebbero usare codici di correzione degli errori. Questi sono simili agli Error Detecting Codes ma possono anche correggere errori minori[1] in un dato codice. Questo è particolarmente utile per i coupon di carta dove l'utente potrebbe leggere male una cifra o un artefatto di stampa potrebbe far apparire un 8 come uno 0.

Questo non rende i codici sicuri da un attacco brute force completo ma almeno assicura che cambiare una o due cifre non generi un codice valido. Inoltre è facile prevenire un attacco brute force limitando il numero di tentativi.

[1] Il numero di errori (1 errore è 1 cifra diversa) che può essere rilevato o corretto dipende dalla distanza di Hamming dei codici generati. I codici con una grande distanza di Hamming sono più lunghi ma possono rilevare più errori. Quindi bisogna soppesare i vantaggi di avere una distanza di Hamming abbastanza buona contro lo svantaggio di dover inserire codici lunghi.

Di Kimmy

Non ero attivo sul mio account Instagram quindi perché mi mostra che ero attivo? :: Sto ricaricando Rs. 10 in Airtel ma non ricevo chiamate in entrata e in uscita. Cosa devo fare?
Link utili