Como saber la contraseña de un ZIP

Como saber la contraseña de un ZIP

Postby jll-fwh » Tue Apr 17, 2012 10:01 pm

Hola a todos:

¿ Alquien sabe si existe alguna función que nos devuelva la contraseña que le hemos insertado a un fichero ZIP ?

Comento:

He retomado los modulos que tenia para hacer backup y restores en los programas para añadirle una contraseña al ZIP. Al crear el fichero ZIP guarda correctamente la contraseña en en ZIP ( si abres el ZIP desde fuera del programa, efectivamente te pide contraseña ), pero mi problema ahora es que, cuando hago el restore y compruebo si ese fichero contiene clave ( con las funciones de harbour es hb_ZipWithPassword( cSourceZip ) ), no veo que exista alguna función que extraiga la contraseña de dicho ZIP para poder comprobar antes de descomprimir si la contraseña que han introducido es = a la que contiene el ZIP.

¿ alguna idea ?

Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Como saber la contraseña de un ZIP

Postby Antonio Linares » Wed Apr 18, 2012 8:22 am

JL,

Aqui tienes la documentación de las funciones para ZIP:

http://harbour.vouch.info/index.html?hbziparch.htm

Creo que no existe lo que buscas. Tendrás que intentar descomprimir y ver si descomprime o no. En esta misma documentación hay ejemplos de uso.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como saber la contraseña de un ZIP

Postby jll-fwh » Wed Apr 18, 2012 5:08 pm

Gracias antonio.

Gracias por la documentación, como he estado varios meses sin estar en este mundillo y no quería meterme en el tema harbour en profundidad no tenia la documentación necesaria, pero al final es inevitable meterse en ello para sacar un buen partido.

Según las funciones por la visto no hay ninguna al respecto, me extraña porque si hay forma de crear el zip con contraseña, se tendría que haber planificado el poder obtener la contraseña mediante una función para poder comprobar si tenemos que descomprimir o no.

- El problema viene por lo siguiente: si se crea un zip con Hb_ZipFile() con parametro que le añades una contraseña, ( si se abre el ZIP fuera del programa, efectivamente te pido la contraseña ), pero usando la función Hb_UnZipFile() con el parametro de contraseña, sea cual sea la contraseña que le metas descomprime el archivo, solo no lo descomprime si la contraseña es NIL. ( en voz bajita, supongo que sera un pequeño bug de la función ).

Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Como saber la contraseña de un ZIP

Postby jll-fwh » Wed Apr 18, 2012 9:30 pm

Antonio;

Viendo la documentación sino me equivoco creo que hay un pequeño bug en la función Hb_ZipFile(), te comento y a ver si es correcto:

- Cuando se crea el fichero ZIP en la función Hb_ZipFile() dentro de esta función esta la siguiente función Hb_ZipFileCreate():
Code: Select all  Expand view
hb_ZipFileCreate( hZip, hb_FNameMerge( iif( lWithPath, cPath, NIL ), cName, cExt, iif( lWithDrive, cDrive, NIL ) ),;
                tTime, NIL, NIL, NIL, NIL, nLevel, cPassword, iif( Empty( cPassword ), NIL, hb_ZipFileCRC32( cFileToZip ) ), NIL )
 

Para mi este parámetro no tiene sentido para poder controlar las contraseñas en el ZIP:
Code: Select all  Expand view
iif( Empty( cPassword ), NIL, hb_ZipFileCRC32( cFileToZip ) )

Por lo siguiente:

Sino se le indica contraseña, graba NIL, pero sino lo que guarda es el CRC del fichero, en vez de guardar la contraseña en hexadecimal por ejemplo. Como cada vez que se crea un fichero ZIP su CRC es distinto, nunca esta relacionado el CRC con la contraseña, por tanto, es imposible poder obtener la contraseña que le hemos indicado.

Esta linea creo que debería ser algo así:
Code: Select all  Expand view
iif( Empty( cPassword ), NIL, HB_STRTOHEX(  cPassword ) )


Y luego, antes de descomprimir los ficheros podriamos hacer hb_ZipFileCRC32() para obtener el CheckSum del fichero que en realiadad sera la contraseña que a su vez podemos compararla con la que ha introducido el usuario haciendo :

Code: Select all  Expand view
If( cPassw == Hb_HexToStr( hb_ZipFileCRC32( cFile ) ) )
 ? "descomprimimos"
ELSE
? "La contraseña no es la correcta"
 

¿ es correcto todo esto ?

A la espera de noticias;
Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Como saber la contraseña de un ZIP

Postby Antonio Linares » Thu Apr 19, 2012 5:52 am

JL,

Este tema deberias proponerlo en la lista de desarrollo de Harbour.

Mi sugerencia es que lo pruebes y si funciona correctamente puedes implementarlo para ti, puesto que todos los fuentes estan disponibles, y si se aprueba en la lista de desarrollo pues lo logico seria que lo integren de forma oficial.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como saber la contraseña de un ZIP

Postby jll-fwh » Mon Apr 23, 2012 6:04 pm

Hola antonio:

Si lo voy a plantear en la lista porque por lo que he visto y probado, hay un pequeño error en la creación del ZIP con temas de contraseña, ya que no graba la contraseña en el ZIP sino siempre graba el CRC del fichero.

De momento para no modificar el fuente en C de harbour hasta plantearlo en la lista de desarrollo de harbour, lo he solucionado de otra forma.

Se pueden ver algunas imagenes en mi blog: http://javierlloris.blogspot.com.es/

Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 35 guests