Sto lavorando a un sistema di biglietteria online per eventi, in cui gli utenti potranno stampare i propri biglietti e presentarsi all'evento dove che verrà sottoposto a scansione (codice a barre) e, idealmente, la persona si metterà in il mio problema è come creare un "codice biglietto" che soddisfi i seguenti requisiti:.Idee per creare un hash piccolo (<10 cifre), non (molto) sicuro "
- ogni "codice del biglietto" devono essere sufficientemente diverso da ogni altro (cioè non numerato sequenzialmente)
- idealmente il biglietto verrà controllato rispetto a un DB centrale per evitare il riutilizzo, ma è necessario poter lavorare anche fuori linea, nel qual caso il sistema deve controllare un biglietto "valido" codice e che non ha stato utilizzato in questo gate.
- il "codice biglietto" deve essere abbastanza piccolo per facilitare il keying, se necessario
- il possessore del biglietto avrebbe solo bisogno il biglietto per entrare in (cioè nessun controllo ID)
La gamma dei dati è molto piccolo, ci saranno solo circa 20 eventi in 4 giorni con circa 5.000 biglietti per evento (circa 100.000 codici di biglietti diversi)
Ora ho diversi campi che non sono stampati sul biglietto e non noti all'utente che Posso usare per codificare parte del "codice ticket", quindi potrei usare EventId, OrderId, EventDate e alcuni salt per creare un piccolo "hash" per pa rt del codice (idee?), ma sono ancora bloccato con l'ID del ticket che è sequenziale o un GUID (sarebbe troppo lungo)
Quindi qualsiasi idea o puntatore su come farlo?
@jaimedp leggi il mio aggiornamento – Unknown
Che ne dici di un normale algoritmo di hashing, ma con un hash troncato? –