galera
seguinte
eu preciso de um aplicativo que criptografe alguns dados e os insira no banco de dados, para serem descriptografados em uma consulta
Eu tenho o seguinte por enquanto:
package teste;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import uteis.criptografia.CriptoUtils;
public class JCETeste {
public static void main(String[] args) throws Exception {
try {
//obtem a chave
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
SecretKey desKey = keyGen.generateKey();
//inicializa o cipher para criptografar
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, desKey);
//texto a ser criptografado
byte[] clearText = "Isto é apenas um exemplo!".getBytes();
//criptografar o texto
byte[] cipherText = desCipher.doFinal(clearText);
//inicializa o cipher para descriptografar
desCipher.init(Cipher.DECRYPT_MODE, desKey);
//descriptografa o texto
byte[] clearText1 = desCipher.doFinal(cipherText);
}
catch(NoSuchPaddingException nspe) {
nspe.printStackTrace();
}
catch(NoSuchAlgorithmException nsae) {
nsae.printStackTrace();
}
catch(IllegalBlockSizeException ibse) {
ibse.printStackTrace();
}
catch(BadPaddingException bpe) {
bpe.printStackTrace();
}
catch(InvalidKeyException ike) {
ike.printStackTrace();
}
catch(Exception e) {
e.printStackTrace();
}
}
}
meu problema é:
A cada vez o sistema gera uma chave diferente, assim é impossível pra mim descriptografar os dados do banco em uma consulta
Como eu faço pra guardar uma key, para que mais tarde eu use a mesma key para descriptografar os dados do banco?