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
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


0