elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 10:11  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: APOKLIPTICO)
| | | |-+  Detectar duplicados eficientementen
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar duplicados eficientementen  (Leído 1,674 veces)
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Detectar duplicados eficientementen
« en: 12 Octubre 2009, 23:44 »

Estoy intentando hacer un programa en python para ir aprendiendo. Lo que quiero es detectar si dos archivos son el mismo y borrarlo, y no quiero que me pregunte, quiero borrarlo, porque puede haber muchos, es una larga historia...

Para eso quería guardar algo que identifique a los archivos, había pensado en el hash md5, pero tarda bastante... después de buscar un rato he encontrado esto de adler, pero no es para eso, me da miedo que me borre archivos que no son el mismo por colisiones de archivos o algo así.

Esto es lo que estaba mirando:

http://docs.python.org/3.1/library/hashlib.html
http://docs.python.org/library/zlib.html

Tengo crc, adler, md5, sha1... pero no sé cual de todos usar para que no tarde mucho y no me borre archivos que no son el mismo :-\

GRacias!!


En línea

digitalis


Desconectado Desconectado

Mensajes: 357


Ver Perfil WWW
Re: Detectar duplicados eficientementen
« Respuesta #1 en: 12 Octubre 2009, 23:52 »

Una colisión puede aparecer en cualquier método de hash... ya que a infinitas entradas hay un número finito de salidas,pero bueno,no es muy común que ocurra eso...


En línea
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: Detectar duplicados eficientementen
« Respuesta #2 en: 13 Octubre 2009, 01:52 »

Pero con algunos métodos el programa tardará más que con otros, y con algunos será más fácil una colisión que con otros.

¿Cómo puedo saber cómo de fácil o difícil es una colisión y el tiempo que tarda para poder decidir? El tiempo podría medirlo, pero sin saber lo otro no me vale de nada...
En línea

APOKLIPTICO
Moderador
***
Desconectado Desconectado

Mensajes: 3.781


Toys in the attic.


Ver Perfil
Re: Detectar duplicados eficientementen
« Respuesta #3 en: 2 Noviembre 2009, 11:54 »

A ver, hablemos de probabilidades:
En un disco de 250 Gb lleno, los archivos en promedio tienen un tamaño de 1 Mb pongamosle:
250000 Archivos.
El cifrado MD5 tiene una salida de 128 bits, osea que 2^128 son las posibilidades de salida = 3,4e+38.
Ahora hacemos 250000 / 3,4e+38 = 0,000000000000000000000000000000073468 % de posibilidades de que haya una colision...
Y si usas Sha-1, ni hablar...
Hay mas posibilidades de que te caiga un rayo, sobrevivas, luego te ganes la loteria, y te caiga otro rayo y vuelvas a sobrevivir y te vuelvas a ganar la loteria que pase eso.
Probabilidades de que te ganes la loteria: 1 / 35.000
Probabilidades de que te caiga un rayo: 1 / 600.000
Probabilidades de que sobrevivas: 1 / 1000 (estimada).
2,26e-25 %...

Un abrazo
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines