based on given information, e. g. username, or birthdate, whatever. So, for two identical inputs, I need two same output
Perché? Il punto della maggior parte delle conferme SMS è confermare l'identità della persona che avvia una determinata azione. A tal fine, non emette nessuna differenza nel codice che hai inviato. Finché l'utente che riceve gli utenti digita ciò che hai inviato, è tutto ciò che ti serve. Inoltre, la generazione di questo codice basato deterministicamente su altri dati [personali] è un potenziale buco di sicurezza.
I can't store this code in database.
SMS è non un protocollo sincrono.
Solo perché hai inviato un messaggio non significa che sia stato ricevuto o che l'utente abbia il telefono caricato e acceso al momento. Potrebbero essere diversi minuti prima che l'utente sia in possesso del codice che hai inviato ed è pronto a reinserirlo.
Dove altro hai intenzione di conservarlo mentre aspetti ??
GetHashCode restituisce un valore univoco per ogni oggetto .Net all'interno di un'applicazione in esecuzione ma, non appena quell'oggetto esce dall'ambito ed è sottoposto a garbage collection, tale valore è scomparso e non può essere ripristinato.
A meno che non lo riposti da qualche parte.