Foros del Web » Programación para mayores de 30 ;) » Java »

problema de cifrado en Java

Estas en el tema de problema de cifrado en Java en el foro de Java en Foros del Web. Buenos días gente, Estoy realizando una aplicación Java que conecta a una base de datos mysql mediante datos de usuario obtenidos desde un fichero .properties ...
  #1 (permalink)  
Antiguo 02/06/2011, 03:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 59
Antigüedad: 15 años, 5 meses
Puntos: 1
problema de cifrado en Java

Buenos días gente,

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
  1. private static String algorithm = "AES";
  2.  
  3.     private static Key key = null;
  4.  
  5.     private static Cipher cipher = null;
  6.  
  7.     /**
  8.      * @param args
  9.      */
  10.  
  11.     public static void main(String[] args) {
  12.  
  13.         try {
  14.  
  15.             key = KeyGenerator.getInstance(algorithm).generateKey();
  16.  
  17.             cipher = Cipher.getInstance(algorithm);
  18.  
  19.             String acrifrar = "pass";
  20.  
  21.             byte[] cifrado = encrypt(acrifrar);[INDENT]System.out.println(new String(cifrado));
  22. [/INDENT]String descifrado = decrypt(cifrado);
  23.  
  24.             System.out.println(descifrado);
  25.  
  26. ------------------------------------------------------
  27.  
  28. public static byte[] encrypt(String input) throws InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
  29.  
  30.         cipher.init(Cipher.ENCRYPT_MODE, key);
  31.  
  32.         byte[] inputBytes = input.getBytes();
  33.  
  34.         return cipher.doFinal(inputBytes);
  35.  
  36.     }
  37.  
  38.     public static String decrypt(byte[] encryptionBytes) throws  InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
  39.  
  40.         cipher.init(Cipher.DECRYPT_MODE, key);
  41.  
  42.         byte[] recoveredBytes =
  43.  
  44.         cipher.doFinal(encryptionBytes);
  45.  
  46.         String recovered =
  47.  
  48.         new String(recoveredBytes);
  49.  
  50.         return recovered;
  51.  
  52.     }

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

Etiquetas: cifrado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:44.