
Uma ferramenta de linha de comando simples e segura para gerenciar códigos de autenticação de dois fatores baseados em TOTP.

Authy / Google Authenticator para a linha de comando.
Hotpot é uma ferramenta de linha de comando simples e segura para gerenciar códigos de autenticação de dois fatores baseados em TOTP. O Hotpot armazena com segurança seus segredos de 2FA no chaveiro do seu sistema e gera senhas únicas baseadas em tempo quando você precisa delas.
Construído com Rust para segurança, desempenho e confiabilidade.
Clone este repositório e execute
cargo install --path . --locked
hotpot add <account-name>
Você será solicitado a inserir o segredo Base32 de forma segura.
Exemplo:
hotpot add github
Enter the Base32 secret: ********
hotpot --load-image /path/to/qr-code.png
Ou use a captura de tela interativa no painel pressionando [A] e depois [S].
Basta executar hotpot para abrir o painel interativo onde você pode:
O painel é atualizado automaticamente a cada 250 ms e lida com redimensionamento do terminal sem problemas.
hotpot code <account-name>
Exemplo:
hotpot code github
hotpot delete <account-name>
Você pode exportar um código QR para uma conta através do painel (pressione [E]) ou usando o comando:
hotpot export-qr --name <account-name>
Isso exibirá um código QR no terminal que pode ser escaneado por aplicativos autenticadores.
Para configurações portáteis ou quando o acesso ao chaveiro não estiver disponível, você pode usar a flag --file para armazenar contas em um arquivo JSON em vez do chaveiro seguro.
# 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
Casos de uso para armazenamento baseado em arquivo:
Nota de Segurança: O armazenamento baseado em arquivo armazena segredos em JSON em texto simples. Garanta permissões adequadas do arquivo (600) e considere criptografar o arquivo para ambientes sensíveis.
Armazenamento Seguro Padrão: O Hotpot armazena todos os segredos com segurança no chaveiro do seu sistema:
Armazenamento Baseado em Arquivo: Ao usar a flag --file, as contas são armazenadas em um arquivo JSON no caminho especificado. O arquivo é criado com permissões apropriadas (600) e os diretórios são criados automaticamente se necessário. Este modo é útil para configurações portáteis ou quando o acesso ao chaveiro não está disponível.
cargo build --release
O binário estará disponível em target/release/hotpot
O projeto inclui testes unitários abrangentes cobrindo a funcionalidade principal:
cargo test
A cobertura de testes inclui:
# 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
O Hotpot é construído com uma arquitetura modular focada em segurança e facilidade de manutenção:
main.rs: Interface de linha de comando e gerenciamento de armazenamentototp.rs: Implementação do algoritmo TOTP (RFC 6238) com cobertura de testes abrangentedashboard.rs: Interface de terminal interativa com atualizações em tempo real e testes unitários extensivoslib.rs: Tratamento comum de erros e utilitários compartilhadoskeyring, base32, hmac, sha1/sha2clap, crossterm, rpasswordfuzzy-matcher, qrcode, arboardserde, serde_json, url, urlencodingimage, rqrr (detecção de código QR)Licença MIT
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
O projeto mantém altos padrões de qualidade de código:
cargo test)cargo clippy)