Skip to content

Secure desktop tools for managing TOTP secrets, featuring AESGCM encryption, password lock,, and a modern UI.

License

Notifications You must be signed in to change notification settings

ppriyanshu26/Authenticator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

38 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” TOTP Authenticator & QR Tool

All-in-one desktop tools for secure OTP management and QR code magic!


๐Ÿ“– Overview

TOTP Authenticator and QR Tool are modern, cross-platform desktop apps for managing your two-factor authentication (2FA) secrets and QR codes securely. With strong encryption, a beautiful UI, and advanced backup options, you stay in control of your credentialsโ€”anywhere, anytime.


โœจ Features

๐Ÿ” TOTP Authenticator

  • AES-256 encrypted TOTP manager
  • Password lock (stored in OS credentials manager)
  • Live OTP list with copy & countdown โณ
  • Crypto utility for quick text encryption/decryption
  • GitHub sync for backup/restore
  • Password reset & security options

๐Ÿ“ท QR Tool

  • Scan, generate, encrypt, and save QR code data
  • TOTP QR generation for authenticator apps
  • AES-256 encryption for QR data
  • User-friendly, modern interface

๏ฟฝ TOTP Authenticator โ€” What It Does

TOTP Authenticator is a secure desktop app for managing all your Time-based One-Time Passwords (TOTPs) in one place, with strong encryption and advanced features for power users.

Main Features:

  • Secure OTP storage (AES-256 encrypted, only accessible with your key)
  • Password lock (stored in OS credentials manager)
  • Live OTP list with copy & countdown
  • Crypto utility: encrypt/decrypt any text with your login key
  • GitHub sync for backup/restore
  • Password reset & security options

Use Cases:

  • Manage all your 2FA/TOTP codes for multiple platforms in one secure app
  • Instantly copy OTPs for login, with visual countdown
  • Encrypt/decrypt any text (e.g., passwords, notes) using your OTP key
  • Back up your secrets to GitHub and restore them on a new device

How the Decryption Key Works:

  • When you log in, you must enter your decryption key (min 8 chars)
  • This key is used to decrypt your OTP secrets and for the crypto utility
  • The key is never saved or storedโ€”only you know it!
  • Only OTPs encrypted with the key you enter will be shown; others remain hidden and secure

๐Ÿ“ท QR Tool โ€” What It Does

QR Tool is a simple yet powerful desktop app for working with QR codes, especially for two-factor authentication (TOTP) secrets.

Main Features:

  • Scan & encrypt QR codes (decode, encrypt with your key, save to encoded.txt)
  • Generate TOTP QR codes for authenticator apps (QR images are saved to your Desktop for easy access)
  • Auto-scan and encrypt generated QRs
  • Clean, dark-themed UI with toast notifications

Use Cases:

  • Securely store TOTP secrets from QR codes (e.g., when setting up 2FA)
  • Convert a TOTP secret into a QR code for easy scanning
  • Encrypt/archive QR code data for backup or cross-device use
  • Quickly decode and view any QR code image

๐Ÿ› ๏ธ Installation & Requirements

  • Windows:

    • No installation required! Just download the EXE files from Releases and run them directly.
  • Want to contribute? See Contributing.

  • On another OS or want to run from source? See Quick Start.


Requirements for Developers/Other OS

  • Python 3.8+
  • Install dependencies:
    • opencv-python
    • qrcode
    • cryptography
    • tkinter (usually included with Python)
    • requests (for TOTP Authenticator)
    • pyperclip (for TOTP Authenticator)
    • keyring (for TOTP Authenticator)
pip install -r requirements.txt

๐Ÿš€ Quick Start

Windows

  1. Download the latest EXE files for both apps from the Releases section.
  2. Run the EXE files directlyโ€”no installation or Python required!
  • Start with QR Tool.exe to scan/generate and save your encrypted credentials.
  • Then use TOTP Authenticator.exe to manage and use your OTPs.

If you want to contribute or modify the code, clone the repository and follow the developer instructions below.

Other OS (Linux/macOS)

  1. Clone the repo:
    git clone https://github.com/ppriyanshu26/AuthPublic.git
    cd AuthPublic
  2. Install dependencies:
    pip install -r requirements.txt
  3. (Optional) Build a standalone app with PyInstaller:
    pip install pyinstaller
    pyinstaller --onefile --windowed "Python/QR Tool.py"
    pyinstaller --onefile --windowed "Python/TOTP.py"
    • The executables will be in the dist/ folder.

๐Ÿ”’ Security & Data Format

Password Storage

  • Your login password is never stored in plain text
  • It is securely hashed and saved using your OS credentials manager (keyring):
    • Windows: Credential Manager
    • macOS: Keychain
    • Linux: Secret Service / KWallet / etc.

Encryption Key: Memorize It!

  • The encryption key you enter to encrypt/decrypt your OTP data is never saved anywhereโ€”not in files, not in memory, not in the cloud
  • If you forget your encryption key, your encrypted OTP data cannot be recovered!
  • Choose a strong but memorable key, and keep it safe

How Your OTPs Are Stored

  • All credentials are stored in a file named encoded.txt (in your app data folder).
  • Each line in this file follows the format:
    PlatformName, EncryptedTOTPURL
    
  • The EncryptedTOTPURL is an AES-256 encrypted string of a standard TOTP URL, for example:
    otpauth://totp/Issuer:Email?secret=SECRET&issuer=Issuer&algorithm=SHA1&digits=6&period=30
    
  • Multiple credentials can be stored, each encrypted with any key you choose.
  • Only the credentials that match the decryption key you enter at login will be shownโ€”others remain hidden and secure. This means you can use different keys for different sets of credentials, and only those you unlock with your key will be visible.

โ˜๏ธ Remote Backup & Access Anywhere

To safeguard your credentials and access them from anywhere:

  1. Upload your encoded.txt to a private GitHub repository (recommended for backup and portability).
  2. Use a fine-grained GitHub access token (with read access to your private repo) to allow the app to fetch your file securely from anywhere.

Steps to Set Up Remote Access:

  1. Create a private repository on GitHub (e.g., totp-backup).
  2. Upload your encoded.txt file to this repo.
  3. Go to GitHub > Settings > Developer settings > Personal access tokens > Fine-grained tokens.
  4. Generate a new token with read-only access to your private repo.
  5. In the app, use the GitHub file URL (e.g., https://github.com/yourname/totp-backup/blob/main/encoded.txt) and your token to sync or restore your credentials from anywhere.

โœ… This way, your secrets are always encrypted, portable, and only accessible with your key!


๐ŸŽฅ Project Walkthrough Video

Watch a full walkthrough of the project here:
โ–ถ๏ธ Google Drive Video Walkthrough


๐Ÿค Contributing

Contributions, bug reports, and suggestions are welcome! Please open an issue or pull request on GitHub.


๐Ÿ–ผ๏ธ Screenshots

TOTP Authenticator Screenshots

TOTP Authenticator Intro
Login Page โ€” Enter your login password and decryption key to unlock your OTPs


TOTP Authenticator GitHub Sync
GitHub Sync โ€” Enter your uploaded encoded.txt file URL and GitHub access token for backup/restore


TOTP Authenticator Main UI
Main UI โ€” View, generate, and copy OTPs for all your accounts


TOTP Authenticator Reset Password
Password Reset โ€” Reset your login password securely if you forget it


TOTP Authenticator Reset Token
Reset Token โ€” Reset your url and access token for the encoded.txt file


TOTP Authenticator Crypto Utility
Crypto Utility โ€” Encrypt or decrypt any text using your decryption key (stored only for the session)



QR Tool Screenshots

QR Tool Landing Page
Landing page โ€” Choose between Scan & Encrypt QR Code or Generate QR From Scratch


QR Tool Generate QR
Generate QR From Scratch โ€” Generates a new QR code from user input


QR Tool Scan & Encrypt
Scan & Encrypt QR Code โ€” Decodes the QR, encrypts the data, and saves to encoded.txt



โ“ FAQ

Q: What if I forget my decryption key?
A: There is no way to recover your encrypted OTP data without the key. Always memorize or securely store your key.

Q: Can I use the same encoded.txt on multiple devices?
A: Yes! Just copy or sync your encoded.txt and use your decryption key on any device.

Q: Is my password or key ever sent to the cloud?
A: No. Your password is stored only in your OS credentials manager, and your key is never saved anywhere.

Q: Can I use this for non-TOTP QR codes?
A: Yes, QR Tool can scan and encrypt any QR code data, not just TOTP.

Q: How do I reset my password?
A: Use the password reset option in the TOTP Authenticator app footer.


๐Ÿ“ฆ Download Ready-to-Use Apps (Windows)

Head to the Releases page to download the latest Windows executables for both apps!


๐Ÿ“„ License

This project welcomes contributions and learning. However, redistribution, modification, or serving as a standalone or separate product (including rebranding or repackaging) is not permitted without my prior written consent. See LICENSE for details.

About

Secure desktop tools for managing TOTP secrets, featuring AESGCM encryption, password lock,, and a modern UI.

Topics

Resources

License

Stars

Watchers

Forks

Languages