Skip to content

hqr90/encrypId

Repository files navigation

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.

EncrypId Banner


📚 Índice


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

EncrypId GUI


Exemplos de Uso

1. Encriptando Credenciais via CLI

encrypid encrypt -i credentials.yaml -o credentials_encrypted.bin

Passo a Passo:

  1. Execute o comando acima no terminal.
  2. Insira e confirme a senha quando solicitado.
  3. O arquivo credentials_encrypted.bin será criado com suas credenciais encriptadas.

2. Decriptando Credenciais via CLI

encrypid decrypt -i credentials_encrypted.bin -o decrypted_credentials.yaml

Passo a Passo:

  1. Execute o comando acima no terminal.
  2. Insira a senha utilizada na encriptação.
  3. O arquivo decrypted_credentials.yaml será criado com suas credenciais decriptadas.

3. Utilizando a GUI

  1. Execute o comando da GUI:

    encrypid-gui
  2. 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".
  3. 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".

Boas Práticas de Segurança

  1. Proteja Seus Arquivos Encriptados:

    • Adicione credentials_encrypted.bin e .env ao seu .gitignore para evitar que sejam versionados.

      # .gitignore
      credentials_encrypted.bin
      .env
  2. 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
  3. 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.
  4. Rotação de Senhas:

    • Periodicamente, altere a senha utilizada para encriptar as credenciais e regenere o arquivo encriptado para manter a segurança.
  5. Auditoria e Monitoramento:

    • Monitore acessos aos arquivos de credenciais e às variáveis de ambiente para detectar quaisquer acessos não autorizados.
  6. 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:

  1. Fork este repositório.

  2. Crie uma branch para sua feature:

    git checkout -b feature/nova-feature
  3. Commit suas mudanças:

    git commit -m "Adiciona nova feature"
  4. Push para a branch:

    git push origin feature/nova-feature
  5. 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:


Proteja suas credenciais com EncrypId e garanta a segurança dos seus dados!

About

Uma ferramenta para encriptar e decriptar credenciais de forma segura.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages