Easy Key (released 2025) — Modern TOTP Authenticator for Windows
Author: jdsaclolo
Website: jdsaclolo.com
Check out my website for more projects and tools.
Easy Key is a secure desktop authenticator application for Windows that provides secure TOTP (Time-based One-Time Password) management with an intuitive interface.
- TOTP Profile Management: Add, edit, and delete authentication profiles with support for username/email, secret keys, and optional PINs
- One-Click Copy: Quickly copy usernames or PIN+TOTP combinations to clipboard with visual confirmation
- Real-Time TOTP Generation: Automatically refreshes TOTP codes every 30 seconds with visual countdown indicator
- Profile Organization: Display all profiles in a scrollable list with clear visibility of account details
- Encrypted Storage: All secrets are encrypted using Fernet encryption with PBKDF2 key derivation (SHA256, 200,000 iterations)
- Per-Profile Secret Key Passwords: Optional Secret Key Password protection for individual profiles to enable secret recovery
- Secure Export/Import: Password-protected profile exports (.easykey format) for safe transfer between computers
- Local-Only Storage: All data stored locally in encrypted format - no cloud sync, no external servers
- Unique Encryption Keys: Each installation generates its own encryption key stored in
.keyfile - Profile View Lock: User can choose to add a password lock for the profile view, with an optional auto-lock timer
- QR from File: Import TOTP secrets by selecting QR code images (PNG, JPG, JPEG, BMP, GIF)
- QR from Camera: Real-time camera scanning with live preview for instant profile setup
- Format Support: Handles both
otpauth://URLs and plain base32 secret strings - Dual Decoder: Primary OpenCV decoder with pyzbar fallback for maximum compatibility
- Modern Themes: Light, Dark, and Auto themes using sv_ttk with system theme detection
- Customizable Window Position: Choose startup position (center, left, or right)
- System Tray Support: Minimize to system tray with quick restore via tray icon click
- Auto-Start on Boot: Optional Windows startup integration with registry management
- Hide on Load: Option to start minimized to tray when launched
- Configurable Close Behavior: Choose between hiding to tray or full exit on window close
- Framework: Tkinter with ttk widgets
- Theme Engine: sv_ttk for modern Light/Dark/Auto themes
- Encryption: Cryptography library (Fernet) with PBKDF2-HMAC-SHA256
- TOTP: Custom implementation following RFC 6238
- System Tray: pystray library for background operation
- QR Decoding: OpenCV (cv2.QRCodeDetector) with pyzbar fallback
-
Secrets are encrypted at rest using Fernet symmetric encryption -- Secret Key Passwords use PBKDF2 with 200,000 iterations and unique salts per profile
-
Export files (.easykey) use separate password-derived keys with 200,000 PBKDF2 iterations
-
No telemetry or external network calls - fully offline operation
-
Encryption key is stored locally; losing the
.keyfile means losing access to secrets -
Authenticators are ideally stored on a separate device for maximum security. If you choose to use Easy Key on the same device you log in with, please be aware of the added risk. Easy Key compensates with strong encryption, secure profiles, and protected exports to ensure that—even if your device is lost—you can still recover your authentication codes safely. Profiles View is unlocked by default. You can enable a password for it in the Settings to enhance protection.
- Python 3.8+ (tested with Python 3.13)
- Windows 10/11 (for full feature support including title bar theming and startup registry)
Troubleshooting
- If camera scanning doesn't work, ensure your camera is accessible and not in use by another app.
License
This project includes a LICENSE.txt file. See that file for license terms.
Contact For issues or questions, open an issue in the repository or contact the maintainer. You can also visit https://jdsaclolo.com to see other projects from the developer.
