
Un outil en ligne de commande simple et sécurisé pour la gestion des codes d'authentification à deux facteurs basés sur TOTP.

Authy / Google Authenticator pour la ligne de commande.
Hotpot est un outil en ligne de commande simple et sécurisé pour gérer les codes d'authentification à deux facteurs basés sur TOTP. Hotpot stocke de manière sécurisée vos secrets 2FA dans le trousseau de votre système et génère des mots de passe uniques temporels lorsque vous en avez besoin.
Construit avec Rust pour la sécurité, les performances et la fiabilité.
Clonez ce dépôt, puis exécutez
cargo install --path . --locked
hotpot add <account-name>
Il vous sera demandé de saisir le secret Base32 de manière sécurisée.
Exemple :
hotpot add github
Enter the Base32 secret: ********
hotpot --load-image /path/to/qr-code.png
Ou utilisez la capture d'écran interactive dans le tableau de bord en appuyant sur [A] puis [S].
Exécutez simplement hotpot pour ouvrir le tableau de bord interactif où vous pouvez :
Le tableau de bord se rafraîchit automatiquement toutes les 250 ms et gère le redimensionnement du terminal avec élégance.
hotpot code <account-name>
Exemple :
hotpot code github
hotpot delete <account-name>
Vous pouvez exporter un code QR pour un compte soit via le tableau de bord (appuyez sur [E]), soit en utilisant la commande :
hotpot export-qr --name <account-name>
Cela affichera un code QR dans le terminal qui peut être scanné par les applications d'authentification.
Pour les configurations portables ou lorsque l'accès au trousseau n'est pas disponible, vous pouvez utiliser le drapeau --file pour stocker les comptes dans un fichier JSON au lieu du trousseau sécurisé.
# Interactive dashboard with file storage
hotpot --file ~/.config/hotpot/accounts.json
# Add account to file
hotpot --file ./my-accounts.json add work-account
# Generate code from file-stored account
hotpot --file ./my-accounts.json code work-account
# Delete account from file
hotpot --file ./my-accounts.json delete work-account
Cas d'utilisation du stockage basé sur fichier :
Note de sécurité : Le stockage basé sur fichier stocke les secrets en JSON en clair. Assurez des permissions de fichier appropriées (600) et envisagez de chiffrer le fichier pour les environnements sensibles.
Stockage sécurisé par défaut : Hotpot stocke tous les secrets de manière sécurisée dans le trousseau de votre système :
Stockage basé sur fichier : Lors de l'utilisation du drapeau --file, les comptes sont stockés dans un fichier JSON au chemin spécifié. Le fichier est créé avec les permissions appropriées (600) et les répertoires sont créés automatiquement si nécessaire. Ce mode est utile pour les configurations portables ou lorsque l'accès au trousseau n'est pas disponible.
cargo build --release
Le binaire sera disponible à target/release/hotpot
Le projet comprend des tests unitaires complets couvrant les fonctionnalités principales :
cargo test
La couverture des tests comprend :
# Run in development mode
cargo run
# Run with specific arguments
cargo run -- add github
# Test with file storage
cargo run -- --file test-accounts.json add test-account
# Check code quality
cargo clippy
# Quick compile check
cargo check
Hotpot est construit avec une architecture modulaire axée sur la sécurité et la maintenabilité :
main.rs : Interface CLI et gestion du stockagetotp.rs : Implémentation de l'algorithme TOTP (RFC 6238) avec une couverture de tests complètedashboard.rs : Interface terminal interactive avec mises à jour en temps réel et tests unitaires completslib.rs : Gestion des erreurs courantes et utilitaires partagéskeyring, base32, hmac, sha1/sha2clap, crossterm, rpasswordfuzzy-matcher, qrcode, arboardserde, serde_json, url, urlencodingimage, (QR code detection)Licence MIT
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Le projet maintient des normes de qualité de code élevées :
cargo test)cargo clippy)rqrr