Estoy realizando una aplicación Java que conecta a una base de datos mysql mediante datos de usuario obtenidos desde un fichero .properties almacenado en el proyecto. Hasta ahora he almacenado todos los parámetros necesarios (usuario, contraseña, puerto, servidor) en el fichero, todo correcto. El problema me viene ahora que quiero cifrar la contraseña almacenada mediante las librerías de java Crypto, he estado probando la clase Cipher y he visto que es capaz de cifrar un String y convertirlo en un array de bytes, así como convertir de nuevo ese array de bytes en String. Lo que he probado es algo como esto:
Código Java:
Ver original
private static Cipher cipher = null; /** * @param args */ try { key = KeyGenerator.getInstance(algorithm).generateKey(); cipher = Cipher.getInstance(algorithm); ------------------------------------------------------ public static byte[] encrypt(String input) throws InvalidKeyException, BadPaddingException, IllegalBlockSizeException { cipher.init(Cipher.ENCRYPT_MODE, key); byte[] inputBytes = input.getBytes(); return cipher.doFinal(inputBytes); } public static String decrypt(byte[] encryptionBytes) throws InvalidKeyException, BadPaddingException, IllegalBlockSizeException { cipher.init(Cipher.DECRYPT_MODE, key); byte[] recoveredBytes = cipher.doFinal(encryptionBytes); String recovered = return recovered; }
Hasta ahí ningún problema, es decir el main me muestra en consola el array de bytes resultante del cifrado y después recupera el texto desde este array de bytes. El problema viene cuando intento serializar ese array de bytes que es lo que me interesa para leerlo desde el fichero, no hay forma de que recupere el String desde ahí.
¿Alguien puede echarme un cable? Mil gracias