https://github.com/link-wolf/ft_otp
Time-based One-Time Password generator
https://github.com/link-wolf/ft_otp
cybersecurity linux python python3
Last synced: about 1 month ago
JSON representation
Time-based One-Time Password generator
- Host: GitHub
- URL: https://github.com/link-wolf/ft_otp
- Owner: Link-Wolf
- Created: 2023-09-14T13:04:37.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2026-04-30T11:58:23.000Z (2 months ago)
- Last Synced: 2026-04-30T13:21:24.326Z (2 months ago)
- Topics: cybersecurity, linux, python, python3
- Language: Python
- Homepage:
- Size: 324 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ft_otp
Nothing ever lasts forever...
A TOTP (Time-based One-Time Password) generator
Report Bug
·
Request Feature
Table of Contents
## Goal
This cybersecurity project aims to implement a TOTP (Time-based One-Time Password) system, which will be capable of generating ephemeral passwords from a master key based on the RFC 6238 standard.
The program has to allow the user to store a initial password in file, and that is capable of generating a new one time password every time it is requested.
> The program is written in Python3
## Getting Started
### Prerequisites
- [Python3](https://www.python.org/downloads/)
- The following modules:
- qrcode
- rsa
- pillow
- tkinter
- python-tk
### Installation
1. Clone the repo
```sh
$> git clone https://github.com/Link-Wolf/ft_otp.git
```
2. Launch the script
```sh
$> cd ft_otp
$> ft_otp [-h] (-g HEX FILE | -k KEY FILE | -i)
```
> -h, --help : display help
> -g HEX_FILE : generate a .key file from a 64 characters hexadecimal key
> -k KEY_FILE : generate a 1 time password that expires after 30 secs from a .key file
> -i, --interface : interface mode
## Usage examples
#### Using in command line

#### Using in interface mode

## Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request