Introdução:
Neste tutorial, aprenderemos a desenvolver um aplicativo simples em Java para criptografar e descriptografar palavras usando a classe Cipher
do pacote javax.crypto
. O aplicativo permitirá ao usuário inserir uma palavra e escolher entre criptografar ou descriptografar essa palavra usando um algoritmo de criptografia simétrica.
Pré-requisitos:
- Conhecimento básico de programação em Java.
- JDK (Java Development Kit) instalado em seu sistema.
Passo 1: Configuração do Projeto:
- Crie um novo projeto Java em sua IDE preferida.
- Certifique-se de ter o JDK configurado corretamente no seu ambiente de desenvolvimento.
Passo 2: Implementação do Aplicativo: Agora, vamos escrever o código Java para o nosso aplicativo codificador e decodificador.
javaimport javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.util.Scanner;
import java.util.Base64;
public class CipherApp {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.println("Selecione uma opção:");
System.out.println("1. Criptografar");
System.out.println("2. Descriptografar");
int opcao = scanner.nextInt();
System.out.println("Digite a palavra a ser processada:");
scanner.nextLine(); // Consumir a quebra de linha deixada pelo nextInt()
String palavra = scanner.nextLine();
// Gerar uma chave secreta
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128); // tamanho da chave em bits
SecretKey chave = keyGen.generateKey();
// Criar uma instância do Cipher
Cipher cipher = Cipher.getInstance("AES");
switch (opcao) {
case 1: // Criptografar
// Criptografar os dados
cipher.init(Cipher.ENCRYPT_MODE, chave);
byte[] dadosCriptografados = cipher.doFinal(palavra.getBytes());
// Imprimir os dados criptografados
System.out.println("Palavra criptografada: " + Base64.getEncoder().encodeToString(dadosCriptografados));
break;
case 2: // Descriptografar
// Descriptografar os dados
cipher.init(Cipher.DECRYPT_MODE, chave);
byte[] dadosDecodificados = cipher.doFinal(Base64.getDecoder().decode(palavra));
// Imprimir os dados descriptografados
System.out.println("Palavra descriptografada: " + new String(dadosDecodificados));
break;
default:
System.out.println("Opção inválida.");
}
scanner.close();
}
}
Explicação do Código:
- O aplicativo solicita ao usuário que escolha entre criptografar ou descriptografar uma palavra.
- A palavra fornecida pelo usuário é convertida em bytes para ser processada pelo Cipher.
- Uma chave secreta é gerada usando o algoritmo AES.
- A instância do Cipher é criada usando o algoritmo AES.
- Dependendo da escolha do usuário, o aplicativo criptografa ou descriptografa a palavra usando a chave e o Cipher apropriados.
Passo 3: Compilação e Execução:
- Salve o arquivo Java.
- Compile o código usando sua IDE ou pelo terminal usando o comando
javac CipherApp.java
. - Execute o aplicativo compilado usando o comando
java CipherApp
.
Conclusão:
Neste tutorial, desenvolvemos um aplicativo simples em Java para criptografar e descriptografar palavras usando a classe Cipher
. Você aprendeu a utilizar os conceitos básicos de criptografia simétrica em Java para proteger dados sensíveis em suas aplicações. Experimente modificar o código para experimentar com diferentes algoritmos de criptografia e opções de entrada do usuário para criar um aplicativo mais robusto e versátil.
Comentários
Postar um comentário