Come sviluppereste un'app per la creazione di onetimepassword per l'accesso a deterimanti portali/backoffice?

Pensavo ad un algoritmo che in base alla mail dell'utente restituisce un codice che varia ogni minuto. Però il sistema muore se il malintenzionato sa l'email dell'utente e l'app.

Qualche consiglio sulla strada da intrapredere?