Java - Cifrado Java

 
Vista:

Cifrado Java

Publicado por María (5 intervenciones) el 13/02/2008 14:30:19
Buenas tardes,

Tengo el siguiente problema,

estoy desarrollando una aplicación y me interesa leer el texto de un fichero que he cifrado previamente, con las librerias de java: Cipher, KeyGenerator y SecretKey. Y el algoritmo DES. El código para encriptar es algo como:

KeyGenerator keyGen = KeyGenerator.getInstance("DES");
clau = keyGen.generateKey();
byte[] cadenaByte= str.getBytes(UTF8);
Cipher cifrar= Cipher.getInstance("DES");
cifrar.init(Cipher.ENCRYPT_MODE, clau);
byte[] enc = cifrar.doFinal(cadenaByte);
return new sun.misc.BASE64Encoder().encode(enc);

Para desencriptar sería algo como:

byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
Cipher descifrar = Cipher.getInstance(this.algorisme);
descifrar.init(Cipher.DECRYPT_MODE, clau);
byte[] cadenaByte= descifrar.doFinal(dec);
return new String(cadenaByte, UTF8);

Mi problema es que no aplico el cifrado y a continuación el descifrado, si no que quiero que los datos del fichero sean cifrados una vez y accedidos diferntes veces, es decir, que se lean y descifren cada vez que se acceda a este. Pero en este momento de la lectura, no tengo forma de conocer la clave con la cual se cifró y por ello no puedo descifrarlo ... no se si me he explicado correctamente.

Alguien me echa una mano??

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cifrado Java

Publicado por Himura (184 intervenciones) el 13/02/2008 17:15:58
Hola,

Una vez que cifres el archivo ya tienes la clave, esa clave guardala en una variable y cada vez que vayas a descifrar obtener el valor de esa variable.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cifrado Java

Publicado por Tom (1831 intervenciones) el 13/02/2008 18:22:14
Pues no tienes muchas alternativas ya que o guardas la clave de cifrado en el propio fichero o bien usas claves para cifrar que puedan obtenerse del nombre del fichero (o de alguna otra propiedad) ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cifrado Java

Publicado por María (5 intervenciones) el 14/02/2008 10:18:28
Hola,

Primero gracias por vuestras sugeréncias, como comenta Tom una alternativa es guardar la clave en el fichero como texto o en la base de datos.

El problema es que al recuperarla como String no se como convertirla en SecretKey, porque la clase no tiene métodos set,.... ni tampoco se puede hacer un cast de forma inmediata.

Siento mi desconocimiento, pero por eso estoy aquí!! si alguien sabe algo mas... le agradecería que me echase una mano!

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cifrado Java

Publicado por María (5 intervenciones) el 14/02/2008 13:12:57
Al final lo he conseguido!!!, si era posible guardar la SecretKey en un fichero, recuperla posteriormente y descifrar el texto...

Este Link me ha salvado la vida:

http://www.herongyang.com/jdk/jce_secretkey_3.html

Para quien le pueda interesar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar