
Uno strumento da riga di comando semplice e sicuro per gestire i codici di autenticazione a due fattori basati su TOTP.

Authy / Google Authenticator per la riga di comando.
Hotpot è uno strumento da riga di comando semplice e sicuro per gestire i codici di autenticazione a due fattori basati su TOTP. Hotpot archivia in modo sicuro i tuoi segreti 2FA nel portachiavi di sistema e genera password monouso basate sul tempo quando ti servono.
Creato con Rust per sicurezza, prestazioni e affidabilità.
Clona questo repository ed esegui
cargo install --path . --locked
hotpot add <account-name>
Ti verrà chiesto di inserire il segreto Base32 in modo sicuro.
Esempio:
hotpot add github
Enter the Base32 secret: ********
hotpot --load-image /path/to/qr-code.png
Oppure usa l'acquisizione interattiva dello screenshot nella dashboard premendo [A] e poi [S].
Basta eseguire hotpot per aprire la dashboard interattiva dove puoi:
La dashboard si aggiorna automaticamente ogni 250 ms e gestisce correttamente il ridimensionamento del terminale.
hotpot code <account-name>
Esempio:
hotpot code github
hotpot delete <account-name>
Puoi esportare un codice QR per un account tramite la dashboard (premi [E]) oppure usando il comando:
hotpot export-qr --name <account-name>
Verrà visualizzato un codice QR nel terminale che può essere scansionato dalle app di autenticazione.
Per configurazioni portabili o quando l'accesso al portachiavi non è disponibile, puoi usare il flag --file per archiviare gli account in un file JSON invece del portachiavi sicuro.
# 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
Casi d'uso per l'archiviazione su file:
Nota sulla sicurezza: l'archiviazione su file salva i segreti in JSON in chiaro. Assicurati di impostare permessi corretti (600) e valuta di crittografare il file per ambienti sensibili.
Archiviazione sicura predefinita: Hotpot archivia tutti i segreti in modo sicuro nel portachiavi di sistema:
Archiviazione su file: quando si usa il flag --file, gli account vengono archiviati in un file JSON nel percorso specificato. Il file viene creato con permessi appropriati (600) e le directory vengono create automaticamente se necessario. Questa modalità è utile per configurazioni portabili o quando l'accesso al portachiavi non è disponibile.
cargo build --release
Il binario sarà disponibile in target/release/hotpot
Il progetto include test unitari completi che coprono le funzionalità principali:
cargo test
La copertura dei test include:
# 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 è costruito con un'architettura modulare incentrata su sicurezza e manutenibilità:
main.rs: interfaccia CLI e gestione dell'archiviazionetotp.rs: implementazione dell'algoritmo TOTP (RFC 6238) con copertura completa dei testdashboard.rs: interfaccia utente di terminale interattiva con aggiornamenti in tempo reale ed estesi test unitarilib.rs: gestione comune degli errori e utilità condivisekeyring, base32, hmac, sha1/sha2clap, crossterm, rpasswordfuzzy-matcher, qrcode, arboardserde, serde_json, url, urlencodingLicenza MIT
I contributi sono i benvenuti! Non esitare a inviare una Pull Request.
Il progetto mantiene standard elevati di qualità del codice:
cargo test)cargo clippy)imagerqrr