Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/07/2006, 10:10
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
JAK^, md5 es un algoritmo que encripta un string generando otro string de 32 caracteres con valores hexadecimales (0-9, más a-f, o sea, 0-f). Es decir que por cada uno de los 32 caracteres hay 16 posibilidades, lo que da una cifra de combinaciones posibles astronómicas. (16 ^ 32; si fueran 10 ^32 sería un 1 seguido de 32 ceros así que calculá...)

Un mismo "input" siempre da el mismo "output".

Por ej, el "hash" (el resultado de la encriptación) de "a" es:

0cc175b9c0f1b6a831c399e269772661

El de "b" es:

92eb5ffee6ae2fec3ad71c777531578f

Si te fijás, a pesar de ser caracteres correlativos no guardan ninguna relación (al menos aparente), por lo que deducir el valor original o encontrar alguna pista es prácticamente imposible.

Una característica del md5 (y otros algoritmos similares) es que no son reversibles. Aún teniendo el código del algoritmo (hay muchas implementaciones que son abiertas, como la de php, alguna que vi en javascript, etc), es en la práctica imposible ("infeasible", así leí siempre en inglés, no sé cuál será la mejor traducción), obtener el "input" original a partir del "output", porque haría falta una cantidad de cálculos monstruosa.

Para más datos, chequeá lo que dice el manual de php
http://ar2.php.net/manual/es/function.md5.php
o buscá en google md5.

Suerte
Califa