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

Como optimizar el algoritmo de encriptacion

Estas en el tema de Como optimizar el algoritmo de encriptacion en el foro de Java en Foros del Web. Hola a todos estoy haciendo uso de un algoritmo de encriptacion MD5, para ello lo que hago es leer un archivo (ej txt o doc), ...
  #1 (permalink)  
Antiguo 24/02/2010, 09:28
 
Fecha de Ingreso: noviembre-2004
Ubicación: Lima-Peru
Mensajes: 81
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Como optimizar el algoritmo de encriptacion

Hola a todos estoy haciendo uso de un algoritmo de encriptacion MD5, para ello lo que hago es leer un archivo (ej txt o doc), para luego pasar a encriptar el archivo y finalmente grabarlo en otro archivo(ya encriptado).
Uso la siguiente logica:
//Con esto leo el archivo
archivo = new File(archivoRuta);
fr = new FileReader(archivo);
br = new BufferedReader(fr);
//Creo un archivo en donde estara el archivo encriptado
fichero = new FileWriter(ruta + "\\2" + jTextField2.getText());
pw = new PrintWriter(fichero);
//Aqui procedo a encriptar
String linea;
while ((linea = br.readLine()) != null) {
//Encryptando cada linea
String lineaEncrydtada = encryptarMD5(linea);
pw.println(lineaEncrydtada);//Aqui guardo la encriptacion que se hace linea a linea
}

//Uso para ello este metodo de encriptacion:
public static String encryptarMD5(String code) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] input = code.getBytes();
input = md.digest(input);
code = aHexadecimal(input);
return code;
} catch (Exception e) {
//en caso de error
e.printStackTrace();
return code;
}
}

Exite otro metodo para hacer la transformacion a Hexadecimal, pero por ahora no es importante, usando estos metodos para hacer la encriptacion, podrian por favor ayudarme a que este proceso sea mas rapido dado que este programa se usara para encriptar archivos pesados entre 2GB y 4GB.

Gracias de antemano.
__________________

Willians Kic2.
:aplauso:
  #2 (permalink)  
Antiguo 25/02/2010, 22:35
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Como optimizar el algoritmo de encriptacion

me parece que tendrias que tener en cuenta lo siguiente.
1- medir utilizando System.currentTimeMillis( ) por ejemplo los metodos que te parecen criticos.

2- tendrias que tambien reducir a la menor cantidad de accesos a disco y no utilizar readLine. Fijate la libreria common-io FileUtils si te puede dar una mano en eso.

3- Tambien por otro lado trata de reemplazar String por otro como StringBuffer (esto trata de medirlo porque no siempre es la mejor solucion y en cada caso hay que analizar un poco mas que tipo de acciones realizas sobre el buffer).

4- si consideras que tenes problemas con el uso de memoria Runtime.getRuntime() te puede dar una mano.

bueno por ahora eso.
  #3 (permalink)  
Antiguo 27/02/2010, 08:04
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Como optimizar el algoritmo de encriptacion

Ohhhh !!

MD5 para encriptar un archivo tan grande ?

No se pero me parece que no es el metodo indicado. De hecho que yo recuerde el MD5 genera 32 caracteres a partir de una cadena simple.

Tal vez me equivoque pero creo que MD5 es conciderado para encriptar cadenas pequeñas como contraseñas y texto de baja longitud debido a su complejidad y esfuerzo que debe realizar. No me imagino cuanto podra pesar un archivo de 2GB cuando quede encriptado ademas de no poder des encriptarlo porque el MD5 no se puede des-encriptar hasta donde tengo entendido.

No has pensado en encriptar con el metodo Base64 ?
Creo que es el usado para encriptar emails, ademas lo unico que necesitas es una clave que pudieras generarla con MD5. Jeje

Estare atento a este post ya que me parce interesante el como podrias resolver esto manejando archivos tan grandes.

Saludos..

Estare
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #4 (permalink)  
Antiguo 27/02/2010, 14:44
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Como optimizar el algoritmo de encriptacion

es muy cierto lo que dice dackiller. Tendrias que ver bien primero que metodo podes desencriptar, sino me parece que pierde un poco de sentido hacer con un archivo. Si lo que queres es no permitir que otros lo puedan ver tendrias que pensar mas en un esquema de seguridad para el manejo de archivos.

Etiquetas: encriptacion, algoritmos
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 10:57.