EncrypId 🛡️🔐
EncrypId é uma ferramenta poderosa e intuitiva desenvolvida em Python para encriptar e decriptar suas credenciais sensíveis de forma segura. Com uma interface de linha de comando (CLI) robusta e uma interface gráfica amigável (GUI) construída com PyQt5, EncrypId garante que suas informações confidenciais estejam sempre protegidas contra acessos não autorizados.
📚 Índice
- Por que EncrypId?
- Funcionalidades
- Tecnologias Utilizadas
- Estrutura do Projeto
- Instalação
- Como Usar
- Exemplos de Uso
- Boas Práticas de Segurança
- Contribuição
- Licença
Por que EncrypId?
Em um mundo cada vez mais digital, proteger informações sensíveis é essencial. Seja para armazenar credenciais de acesso a serviços como Firebase, GPT ou outras APIs, garantir que esses dados estejam seguros evita riscos de segurança e acessos indesejados. EncrypId oferece uma solução simples e eficaz para gerenciar suas credenciais com segurança máxima.
Funcionalidades
- Encriptação de Credenciais: Converta seus arquivos YAML contendo credenciais em arquivos binários encriptados.
- Decriptação de Credenciais: Recupere suas credenciais de arquivos encriptados de forma segura.
- Interface de Linha de Comando (CLI): Execute operações de encriptação e decriptação diretamente pelo terminal.
- Interface Gráfica (GUI): Utilize uma interface amigável para gerenciar suas credenciais sem a necessidade de comandos.
- Gestão de Senhas Segura: Utilize senhas fortes para proteger suas credenciais e evite armazená-las diretamente no código.
Tecnologias Utilizadas
- Python 3.8+
- PyQt5: Para a construção da interface gráfica.
- Click: Para a criação da interface de linha de comando.
- Cryptography: Biblioteca robusta para operações de criptografia.
- PyYAML: Para manipulação de arquivos YAML.
- Python-dotenv: Para gerenciamento de variáveis de ambiente.
Estrutura do Projeto
encrypid/
├── encrypid/
│ ├── __init__.py # Inicializa o pacote EncrypId
│ ├── encrypid.py # Classe principal para encriptação e decriptação
│ └── encrypid_ui.py # Interface gráfica com PyQt5
├── tests/
│ ├── __init__.py
│ └── test_encrypid.py
├── LICENSE
├── README.md
├── setup.py
├── pyproject.toml
├── requirements.txt
└── MANIFEST.in
Instalação
1. Clonar o Repositório
git clone https://github.com/hqr90/encrypid.git
cd encrypid
2. Criar um Ambiente Virtual (Recomendado)
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
3. Instalar as Dependências
pip install -r requirements.txt
4. Publicar no PyPI (Opcional)
Para tornar o EncrypId instalável via pip, você pode publicar o pacote no PyPI. Siga os passos descritos na seção Tornar o EncrypId Instalável via pip.
Como Usar
EncrypId está disponível tanto via CLI quanto via GUI. Além disso, você pode instalar o EncrypId diretamente via pip para facilitar o uso.
Instalação via pip
Após publicar no PyPI, instale o EncrypId usando:
pip install encrypid
Interface de Linha de Comando (CLI)
A CLI permite que você encripte e decripte suas credenciais diretamente pelo terminal.
🔒 Encriptar Credenciais
encrypid encrypt -i caminho/para/credentials.yaml -o caminho/para/credentials_encrypted.bin
Parâmetros:
-i,--input-file: Caminho para o arquivo YAML de credenciais a ser encriptado.-o,--output-file: Caminho para salvar o arquivo encriptado.
Exemplo:
encrypid encrypt -i credentials.yaml -o credentials_encrypted.bin
Será solicitado que você insira uma senha segura para encriptar as credenciais.
🔓 Decriptar Credenciais
encrypid decrypt -i caminho/para/credentials_encrypted.bin -o caminho/para/decrypted_credentials.yaml
Parâmetros:
-i,--input-file: Caminho para o arquivo encriptado a ser decriptado.-o,--output-file: (Opcional) Caminho para salvar o arquivo YAML de saída. Se omitido, as credenciais serão exibidas no terminal.
Exemplo:
encrypid decrypt -i credentials_encrypted.bin -o decrypted_credentials.yaml
Ou para exibir no terminal:
encrypid decrypt -i credentials_encrypted.bin
🔑 Gerar Chave (Opcional)
encrypid generate_key
Este comando serve para verificar se a senha está funcionando corretamente, embora a geração de chave seja gerenciada internamente.
Interface Gráfica (GUI)
A GUI proporciona uma experiência visual para gerenciar suas credenciais sem a necessidade de comandos.
🔧 Executar a GUI
Após a instalação via pip, inicie a GUI usando:
encrypid-gui
Funcionalidades Disponíveis:
-
Encriptar Credenciais:
- Selecione o arquivo YAML de entrada.
- Escolha onde salvar o arquivo encriptado.
- Insira e confirme a senha.
- Clique em "Encriptar" para processar.
-
Decriptar Credenciais:
- Selecione o arquivo encriptado.
- (Opcional) Escolha onde salvar o arquivo YAML de saída.
- Insira a senha.
- Clique em "Decriptar" para processar.
-
Logs e Mensagens de Status:
- Área dedicada para exibir mensagens de sucesso, erros e logs de operações.
📸 Tela Inicial da GUI
Exemplos de Uso
1. Encriptando Credenciais via CLI
encrypid encrypt -i credentials.yaml -o credentials_encrypted.bin
Passo a Passo:
- Execute o comando acima no terminal.
- Insira e confirme a senha quando solicitado.
- O arquivo
credentials_encrypted.binserá criado com suas credenciais encriptadas.
2. Decriptando Credenciais via CLI
encrypid decrypt -i credentials_encrypted.bin -o decrypted_credentials.yaml
Passo a Passo:
- Execute o comando acima no terminal.
- Insira a senha utilizada na encriptação.
- O arquivo
decrypted_credentials.yamlserá criado com suas credenciais decriptadas.
3. Utilizando a GUI
-
Execute o comando da GUI:
encrypid-gui
-
Na seção de encriptação:
- Clique em "Selecionar Arquivo" para escolher
credentials.yaml. - Clique em "Selecionar Destino" para definir onde salvar
credentials_encrypted.bin. - Insira e confirme a senha.
- Clique em "Encriptar".
- Clique em "Selecionar Arquivo" para escolher
-
Na seção de decriptação:
- Clique em "Selecionar Arquivo" para escolher
credentials_encrypted.bin. - (Opcional) Clique em "Selecionar Destino" para definir onde salvar
decrypted_credentials.yaml. - Insira a senha.
- Clique em "Decriptar".
- Clique em "Selecionar Arquivo" para escolher
Boas Práticas de Segurança
-
Proteja Seus Arquivos Encriptados:
-
Adicione
credentials_encrypted.bine.envao seu.gitignorepara evitar que sejam versionados.# .gitignore credentials_encrypted.bin .env
-
-
Gerencie as Permissões dos Arquivos:
-
Restrinja as permissões para que apenas o usuário atual possa ler e escrever os arquivos sensíveis.
chmod 600 credentials_encrypted.bin chmod 600 .env
-
-
Armazene a Senha com Segurança:
- Utilize ferramentas de gerenciamento de segredos, como AWS Secrets Manager, Azure Key Vault, ou HashiCorp Vault, para armazenar e gerenciar suas senhas de forma segura.
-
Rotação de Senhas:
- Periodicamente, altere a senha utilizada para encriptar as credenciais e regenere o arquivo encriptado para manter a segurança.
-
Auditoria e Monitoramento:
- Monitore acessos aos arquivos de credenciais e às variáveis de ambiente para detectar quaisquer acessos não autorizados.
-
Evite Expor Senhas em Logs:
- Assegure-se de que senhas ou dados sensíveis não sejam registrados em logs ou exibidos no terminal inadvertidamente.
Contribuição
Contribuições são bem-vindas! Se você deseja melhorar o EncrypId, siga os passos abaixo:
-
Fork este repositório.
-
Crie uma branch para sua feature:
git checkout -b feature/nova-feature
-
Commit suas mudanças:
git commit -m "Adiciona nova feature"
-
Push para a branch:
git push origin feature/nova-feature
-
Abra um Pull Request.
Licença
Este projeto está licenciado sob a MIT License.
Contato
Para dúvidas, sugestões ou contribuições, entre em contato:
- Email: rebello.hiltonqueiroz@gmail.com
- LinkedIn: hqr90
- GitHub: hqr90
✨ Proteja suas credenciais com EncrypId e garanta a segurança dos seus dados! ✨
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file encrypid-0.1.4.tar.gz.
File metadata
- Download URL: encrypid-0.1.4.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31a8be8ec4d723f3498b6acaa721b5fe235b477d59b3e9b33cabd10ecf12e063
|
|
| MD5 |
cdf32ae4e044bdee69af23f00adb5fc7
|
|
| BLAKE2b-256 |
9c5f9417a961935836b91d30e3f11234277a12185e0ce57cafb57e9ab81d84cd
|