Pessoal.
Tô com o seguinte problema. Eu tenho uma classe que faz a Criptografia e Decriptografia das senhas dos meus usuários. Esta classe possui 2 métodos, são eles: Criptografa / Descriptografa.
A Criptografia funciona sem problemas, o problema está quando eu vou Decriptografar, ele me dá o seguinte erro: Given final block not properly padded. Eis os meus métodos:
-
Criptografia public String Criptografa(String mensagem) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { // Gera a chave DES de 56 bits KeyGenerator gerador = KeyGenerator.getInstance(“DES”); gerador.init(56); Key chave = gerador.generateKey();
// Cria instância da implementação de DES
Cipher cifra =Cipher.getInstance(“DES”);// Inicia Criptografia da Mensagem cifra.init(Cipher.ENCRYPT_MODE, chave); // Inicia algoritmo byte[] mensagemByte = mensagem.getBytes(); byte[] mensagemCifrada = cifra.doFinal(mensagemByte); String msgRetorno = new String(mensagemCifrada);
// Retorna a senha Criptografada return msgRetorno; }
-
Decriptografia public String Decriptografa(String mensagem) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { // Gera a chave DES de 56 bits KeyGenerator gerador = KeyGenerator.getInstance(“DES”); gerador.init(56); Key chave = gerador.generateKey();
// Cria instância da implementação de DES
Cipher cifra =Cipher.getInstance(“DES”);// Decriptografa Mensagem cifra.init(Cipher.DECRYPT_MODE, chave); byte[] mensagemByte = mensagem.getBytes(); byte[] mensagemOriginal = cifra.doFinal(mensagemByte); String msgDecripto = new String(mensagemOriginal);
return msgDecripto;
}
O erro ocorre somente no método de Decriptografia, a Criptografia está OK.
Se alguém puder dar uma força eu agradeço muito.
Valeu.
Kinho.