Ajuda no código fonte para descriptografar usando o AES - Simples
Bom Pessoal, sou novo no fórum e resolvi pedir um auxilio aqui.
Estou tentando criar um pequeno software simples de criptografia usando o código AES, disponível originalmente https://www.devmedia.com.br/utilizandocriptografiasimetricaemjava/
31170.
Mas nessa minha adaptação, estou usando o JOptionPane para a parte gráfica, e a condição IF para o usuário escolher se ele deseja criptografar ou descriptografar.
Na parte de criptografar, esta funcionando corretamente, o usuário digita o texto, e o programa, imprime para o usuário o código (mas com um pequeno erro no final, fica aparecendo repetidamente por 16 vezes o código)
E na parte de descriptografar não onde o usuário deveria inserir o codigo, ele esta dando erro em uma variável, e que não consigo resolver.
Variavel encriptado, Linha String textodecriptado = decrypt(encriptado, chaveencriptacao);
Codigo Completo
Estou tentando criar um pequeno software simples de criptografia usando o código AES, disponível originalmente https://www.devmedia.com.br/utilizandocriptografiasimetricaemjava/
31170.
Mas nessa minha adaptação, estou usando o JOptionPane para a parte gráfica, e a condição IF para o usuário escolher se ele deseja criptografar ou descriptografar.
Na parte de criptografar, esta funcionando corretamente, o usuário digita o texto, e o programa, imprime para o usuário o código (mas com um pequeno erro no final, fica aparecendo repetidamente por 16 vezes o código)
E na parte de descriptografar não onde o usuário deveria inserir o codigo, ele esta dando erro em uma variável, e que não consigo resolver.
Variavel encriptado, Linha String textodecriptado = decrypt(encriptado, chaveencriptacao);
Codigo Completo
package painel;
import javax.swing.JOptionPane;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.Cipher;
public class Painel {
static String IV = "AAAAAAAAAAAAAAAA";
static String textopuro;
static String chaveencriptacao = "0123456789abcdef";
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Software de Criptografia AES V1.0 - Watte");
Object[] itens = {"Criptografar", "Descriptografar"};
Object selectValue = JOptionPane.showInputDialog(null, "Escolha a opção desejada",
"Software de Criptografia AES V1.0", JOptionPane.INFORMATION_MESSAGE, null, itens, itens [0]);
try{
if (selectValue == itens[0]) { //aqui o usuario criptografa, digitando o texto
textopuro = JOptionPane.showInputDialog("Digite abaixo oque deseja Criptografar");
byte[] textoencriptado = encrypt(textopuro, chaveencriptacao);
for(int i=0; i<textoencriptado.length; i++)
JOptionPane.showMessageDialog(null, "Criptografado: "+ new Integer(textoencriptado[1]));
System.exit(0);
}
if (selectValue == itens[1]) { // aqui o usuario descriptografa, inserindo o codigo a ser descriptografado
encriptado = JOptionPane.showInputDialog("Insira abaixo o codigo que deseja Descriptografar:");
String textodecriptado = decrypt(encriptado, chaveencriptacao); //na variavel encriptado esta com erro
JOptionPane.showMessageDialog(null, "Codigo Descriptografado: "+textodecriptado);
}
}catch (Exception e){
e.printStackTrace();
}
}
public static byte[] encrypt(String textopuro, String chaveencriptacao) throws Exception {
Cipher encripta = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
SecretKeySpec key = new SecretKeySpec(chaveencriptacao.getBytes("UTF-8"),"AES");
encripta.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(IV.getBytes("UTF-8")));
return encripta.doFinal(textopuro.getBytes("UTF-8"));
}
public static String decrypt(byte[] encriptado, String chaveencriptacao) throws Exception {
Cipher decripta = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
SecretKeySpec key = new SecretKeySpec(chaveencriptacao.getBytes("UTF-8"), "AES");
decripta.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(IV.getBytes("UTF-8")));
return new String(decripta.doFinal(encriptado), "UTF-8");
}
}
Lenoir
Curtidas 0