This project is a tool that allows users to securely generate OTP (One Time Password). It can work with both command-line interface and graphical user interface (GUI). This tool generates OTPs that can be especially used for two-factor authentication (2FA).
You can follow these steps to start using this project:
git clone https://github.com/whymami/ft_otp.git && cd ft_otp
You can run the following command to install project requirements:
pip install -r requirements.txt
python main.py -g <path>
This command will take a key from the file you provided and save it encrypted to ft_otp.key file.
To print the password using an existing OTP key:
python main.py -k <key_file>
To run the project in GUI mode:
python main.py -G gui
In the GUI, users can:
- Enter OTP keys
- Select key from file
- View OTP
- Generate QR code
- HOTP (HMAC-Based One-Time Password): Allows users to generate OTP with hexadecimal keys.
- GUI (Tkinter): Provides GUI support for easy use.
- QR Code Generation: Creates a QR code associated with OTP.
- Key Encryption: Keys can be encrypted and stored securely.
- Command Line Support: OTP can also be generated from command line instead of GUI.
ft_otp/
├── gui.py # GUI interface
├── file_handler.py # Key encryption and decryption operations
├── otp.py # OTP generation functions
├── global_variables.py # Global variables
├── main.py # Main program file
├── requirements.txt # Required Python libraries
├── ft_otp.key # Encrypted OTP keys
└── README.md # Project description (this file)