Skip to content

KalimaraPeleteiro/CLI-FileEncryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ferramenta de Criptografia

Um programa Go que pode ser executado no terminal para criptografar e descriptografar arquivos. Use o comando encrypt para a primeira operação, decrypt para a segunda, e help para aprender mais sobre o programa, se necessário. Qualquer tipo de arquivo pode ser criptografado. O projeto original é de autoria de @AkhilSharma90.

Lógica de Criptografia

O algoritmo utilizado no programa é o AES (Advanced Encryption Standard), em seu modo GCM (Galois/Counter Mode). O modo de funcionamento é o seguinte:

  1. Após o arquivo ser aberto e seu conteúdo lido, uma chave é gerada a partir da senha fornecida pelo usuário. O algoritmo utilizado para isso é o PBKDF2, que aplica uma função específica a uma senha várias vezes. Para garantir que o processo seja aleatório (a mesma senha irá gerar chaves diferentes em diferentes tentativas), é criado um nonce, um número aleatório usado somente uma vez na operação.
  2. A seguir, a chave derivada criada é utilizada para criar blocos de cifra (bytes criptografados). O modo GCM é aplicado.
  3. Por fim, o processo é finalizado com a função Seal para criptografar.
  4. O novo arquivo é criado, sobrescrevendo o anterior, e o nonce é adicionado em seus dados, para que, no processo de descriptografia, possamos lê-lo e recriar o arquivo.

O processo de descriptografia é basicamente o inverso.

Execução

Captura de tela de 2024-02-08 09-34-42

Captura de tela de 2024-02-08 09-34-58

Captura de tela de 2024-02-08 09-35-13

About

Uma aplicação Go que pode ser executada no terminal para criptografar ou descriptografar arquivos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages