This document proposes a two-factor authentication system that uses smartphones to generate one-time passwords (OTPs). It aims to improve security over traditional password-based systems while reducing costs compared to hardware token-based OTP systems. The proposed system would have client software on PCs and Android apps to generate OTPs using cryptographic algorithms and unique device identifiers. OTPs would be validated by the server to authenticate transactions. Future work could explore using images instead of OTPs for two-factor authentication via mobile apps.