
La solución es simple, memoriza una pin que realmente son posiciones. Recibes un string nuevo y solo seleccionas del string las posiciones de tu pin. YA TIENES TU OTP. Este String lo recibes por sms, por email, lo generas con una app...etc

Claro, solo en coste de despliege, mantenimiento y comodidad para el usuario la mejora es enorme.
hth,
robclav