Java 01 - Jasypt: Protegendo dados sensíveis com criptografia.
Davi Jonck
Posted on May 30, 2023
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>
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;
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";
03) Cria-se uma nova instância da classe BasicTextEncryptor
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
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");
05) Em seguida utilizamos o método encrypt para criptografar esta senha.
String encryptedPassword = textEncryptor.encrypt(password);
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);
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);
}
}
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
Posted on May 30, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.