I use AES Algorithm, and unique key value for encryption for all uses.
public class Encriptacion
{
private static final String ALGORITMO = "AES";
private static final byte[] valor_clave = "0000000000000000".getBytes();
// key 16 bytes lenght (what you want and of course, valid characters)
public static String encriptar (String texto_a_encriptar) throws Exception
{
Key key = new SecretKeySpec(valor_clave, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, key );
byte[] encrypted = cipher.doFinal(texto_a_encriptar.getBytes("UTF-8"));
String texto_encriptado = Base64.encodeToString(encrypted, Base64.DEFAULT);//new String(encrypted, "UTF-8");
return texto_encriptado;
}
public static String desencriptar(String texto_encriptado) throws Exception
{
Key key = new SecretKeySpec(valor_clave, ALGORITMO);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decodificar_texto = Base64.decode(texto_encriptado.getBytes("UTF-8"), Base64.DEFAULT);
byte[] desencriptado = cipher.doFinal(decodificar_texto);
return new String(desencriptado, "UTF-8");
}
}
I've been doing a test and it works fine. If anyone reads it and if you want to leave a suggestion or improve, feel free to leave a message.