DEV Community

Cover image for Java 01 - Jasypt: Protegendo dados sensíveis com criptografia.
Davi Jonck
Davi Jonck

Posted on

Java 01 - Jasypt: Protegendo dados sensíveis com criptografia.

A segurança de dados é um aspecto crítico em qualquer aplicativo ou sistema, especialmente quando se trata de informações sensíveis, como senhas, números de cartão de crédito ou dados pessoais. A criptografia é uma técnica amplamente utilizada para proteger esses dados confidenciais, tornando-os ininteligíveis para qualquer pessoa que não possua a chave correta. Uma das bibliotecas populares para criptografia em Java é o Jasypt.

O que é Jasypt?

Jasypt é uma biblioteca de criptografia em Java que fornece recursos abrangentes para proteger dados sensíveis em aplicativos. Ela é fácil de usar e oferece suporte a vários algoritmos criptográficos, incluindo AES (Advanced Encryption Standard), DES (Data Encryption Standard), RSA (Rivest-Shamir-Adleman), entre outros.

Desenvolvida por Daniel Fernández, a biblioteca Jasypt foi criada visando simplificar o processo de criptografia em Java e fornecer uma camada adicional de segurança aos aplicativos.

Como usar o Jasypt?

Implementação nas dependências do seu Projeto

  • Site do Jasypt onde pode encontrar todas as informações

Primeiramente você tem que adicionar no seu pom.xml a dependência do jasypt como pode ver a baixo.

  <dependencies>
      <dependency>
          <groupId>org.jasypt</groupId>
          <artifactId>jasypt</artifactId>
          <version>1.9.3</version>
      </dependency>
  </dependencies>
Enter fullscreen mode Exit fullscreen mode

Usando uma criptografia simples

Vamos usar o exemplo de que queremos criptografar uma senha.

01) O primeiro passo é importar a classe BasicTextEncryptor da biblioteca do Jasypt

import org.jasypt.util.text.BasicTextEncryptor;
Enter fullscreen mode Exit fullscreen mode

02) Tenha em mente que criamos a senha com algum programa, para deixar mais simples vou criar uma string como exemplo.

String password = "minha_senha";
Enter fullscreen mode Exit fullscreen mode

03) Cria-se uma nova instância da classe BasicTextEncryptor

BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
Enter fullscreen mode Exit fullscreen mode

04) O Próximo passo é criar uma chave de criptografia para o objeto textEcrpytor usando o método setPassword.

textEncryptor.setPassword("minha_chave_de_criptografia");
Enter fullscreen mode Exit fullscreen mode

05) Em seguida utilizamos o método encrypt para criptografar esta senha.

String encryptedPassword = textEncryptor.encrypt(password);
Enter fullscreen mode Exit fullscreen mode

Pronto! Agora temos uma senha criptografada, lembrando isso é a maneira mais simples de utilizar essa biblioteca.

06)Pode-se salvar em um arquivo essa senha criptografada ou simplesmente mostrar no console para ver se esta funcionando.

  System.out.println("Senha criptografada: " + encryptedPassword);
Enter fullscreen mode Exit fullscreen mode

07) Para descriptografar dados previamente criptografados, você precisará utilizar a mesma chave ou algoritmo de criptografia usado na etapa de criptografia, e depois ao invéz de utilizar o método encypt utilizamos o decrypt.

Exemplo de um programa pronto simples.

import org.jasypt.util.text.BasicTextEncryptor;

public class EncryptionExample {

    public static void main(String[] args) {
        String password = "minha_senha";
        String chaveDeCriptografia = "minha_chave_de_criptografia";

        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        textEncryptor.setPassword(chaveDeCriptografia);

        String encryptedText = textEncryptor.encrypt(password);
        System.out.println("Texto criptografado: " + encryptedText);

        String decryptedText = textEncryptor.decrypt(encryptedText);
        System.out.println("Texto descriptografado: " + decryptedText);
    }
}
Enter fullscreen mode Exit fullscreen mode

Para quem quiser se aprofundar mais.

Vou deixar um projeto do meu github onde criei uma aplicação que gera senhas com base nas condições desejadas e as salva em um bloco
de notas criptografado. Em seguida, permite descriptografar as senhas e criar um novo arquivo
que será excluído em 30 segundos, contendo todas as senhas.

https://github.com/DaviJonck/Password-Generator-and-Encryptor

Top comments (0)