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.