An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


Link-Wolf - ft_otp
Year - 2022
stars - ft_otp
forks - ft_otp
issues - ft_otp
OS - linux



ft_otp


Nothing ever lasts forever...

A TOTP (Time-based One-Time Password) generator




Report Bug
·
Request Feature


Table of Contents



  1. Goal


  2. Getting Started


  3. Usage examples

  4. Contributing

## Goal



ft_otp

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

(back to top)

## 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

(back to top)

## Usage examples

#### Using in command line

![](assets/totp_terminal.png)

#### Using in interface mode

![](assets/totp_interface.png)

(back to top)

## 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

(back to top)