Gerenciador criptográfico de arquivos de texto de interface shell.
O Diary-CLI é um programa com interface em shell que permite o gerenciamento de arquivos de texto em um diretório rastreado configurável pelo usuário e seus subdiretórios. Sua principal finalidade é proporcionar a criptografia e descriptografia dos arquivos rastreados.
Com o Diary-CLI, você pode organizar seus arquivos de texto de forma segura, criptografando-os com senhas escolhidas por você. O programa utiliza um algoritmo de criptografia de chave simétrica, onde você pode fornecer uma ou mais senhas (separadas por espaços) para cada arquivo. Esse processo pode ser repetido várias vezes para o mesmo arquivo, mas a descriptografia deve seguir a mesma ordem de senhas utilizadas na criptografia. Além disso, as senhas podem ser combinadas com um salt alfanumérico, armazenado em um arquivo cuja localização é especificada nas configurações, para adicionar aleatoriedade e aumentar a segurança.
As únicas dependências necessárias para executar o Diary-CLI são:
-
Python 3.8+
-
Python Pip
-
Python venv
-
Python 3 Dev
Tudo isto pode ser instalado em ambientes UNIX com:
sudo apt install -y python3 python3-pip python3-venv python3-dev
O programa é multi-plataforma, podendo ser executado em ambientes Linux, MacOS e Windows.
Para criar um executável do Diary-CLI e torná-lo executável a partir de qualquer lugar em um ambiente Linux, siga as instruções abaixo em uma shell interativa:
- Clone o repositório do Diary-CLI do GitHub:
git clone https://github.com/GabrielLins64/diary-cli
- Navegue até o diretório do projeto.
cd diary-cli
- Para manter o seu sistema limpo, a instalação utiliza ambientes virtuais Python, então instale o python-venv:
sudo apt-get install python3-venv
A partir daqui há 2 formas de instalar, a instalação utilizando a ferramenta make (recomendada) ou a instalação manual.
- Garanta que seu sistema possui a ferramenta Make.
Atenção: O programa irá pedir permissão de administrador durante a instalação para copiar o binário para /usr/local/bin
, de forma a tornar o programa executável de qualquer lugar.
sudo make install
: Para instalar o Diary-CLI. Após a instalação, o programa será executado de qualquer lugar com o comando diarycli
.
make build
: Para criar apenas o executável em dist/main
.
make clean
: Para limpar arquivos temporários e diretórios de build.
- Crie um ambiente virtual e ative-o (recomendado mas opcional):
python -m venv venv
source venv/bin/activate
- Instale as dependências com o Python Pip:
pip install -r requirements.txt
- Agora crie o executável usando o Pyinstaller:
pyinstaller --onefile main.py
- Finalmente, copie o executável gerado em
dist/main
para o diretório de binários locais:
sudo cp dist/main /usr/local/bin/diarycli
Agora você pode executar a aplicação de qualquer lugar usando o comando:
diarycli
O Diary-CLI possui uma interface interativa que permite ao usuário:
-
Buscar diretórios/arquivos.
-
Navegar pelo diretório rastreado pelo programa.
-
Configurar algumas opções, como:
-
Armazenamento (onde os subdiretórios e arquivos rastreados serão armazenados).
-
Editor padrão (para visualizar/editar os arquivos).
-
Arquivo de salt (salt utilizado na criptografia).
-
Mostrar senhas (Ao digitar suas senhas na hora da criptografia de arquivos, mostrar ou não a senha na interface).
-
-
Visualizar ajuda por dentro da interface.
O algoritmo de criptografia do Diary-CLI utiliza uma criptografia de chave simétrica. O usuário pode fornecer uma ou mais senhas para cada arquivo, separadas por espaços. Esse processo pode ser repetido mais de uma vez para o mesmo arquivo, mas é fundamental seguir a mesma ordem de senhas na descriptografia.
Além disso, as senhas podem ser combinadas com um salt alfanumérico, armazenado em um arquivo cuja localização é especificada nas configurações. Isso permite gerar hashes para adicionar aleatoriedade e evitar que pequenas mudanças nas senhas gerem saídas semelhantes.
O algoritmo é seguro e não é quebrável, mesmo pelo processo de força bruta, uma vez que pode ser gerada uma quantidade infinita de diferentes textos em linguagem natural a partir de combinações de senhas aleatórias.
Importante: É altamente recomendada a realização de um back-up de seus arquivos (ainda que criptografados), pois caso haja uma tentativa de quebra malsucedida por um invasor, o estado atual do arquivo criptografado será quase completamente irreversível, salvo se todo o processo de tentativa de quebra for realizado de forma inversa.
Se você deseja contribuir com o Diary-CLI, siga os passos abaixo:
-
Faça um fork do repositório oficial do Diary-CLI no GitHub clicando no botão "Fork" na parte superior direita da página do repositório.
-
Clone o repositório forkado para o seu computador:
git clone https://github.com/seu-usuario/diary-cli.git
- Crie uma branch para realizar suas alterações:
cd diary-cli
git checkout -b minha-feature
-
Faça as alterações desejadas no código.
-
Commite suas alterações e envie-as para o GitHub:
git add .
git commit -m "Minha contribuição: descrição das alterações"
git push origin minha-feature
- Abra um Pull Request no repositório oficial do Diary-CLI clicando no botão "Compare & pull request" na página do seu repositório forkado.
A equipe do Diary-CLI irá revisar suas alterações e, se tudo estiver correto, elas serão incorporadas ao projeto principal. Obrigado por contribuir!