Ver Mensaje Individual
  #8 (permalink)  
Antiguo 02/06/2010, 17:05
Avatar de Sommy
Sommy
 
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: funcion md5()

MD5 nacio para poner una firma digital a los software... asi uno chequeaba que el archivo que se descarga es el mismo del fabricante... si alguien le toca al menos un bit ya el MD5 cambia drasticamente... esto es llamado checksum.

Luego a alguien se le ocurrio encriptar claves con MD5, aunque el MD5 no es para esto y de ahi la inseguridad que conlleva (aunque es mejor que la contraseña pelada).

Que hace? Convierte cualquier texto de cualquier longitud a una cadena de 33 caracteres inentendible.

Para que se usa? Por si alguien (ya sea un hacker o un empleado del hosting) accede a la base de datos, que no entienda la contraseña.

Cual es la logica que no entendes?
vos tecleas una clave => el php la convierte a MD5 => el PHP compara tu clave en MD5 con la que esta en la base de datos...

Si vos tecleas tu clave en MD5 en el campo de contraseña, el PHP le aplica MD5 a ese MD5 y ya te da otra cosa, por eso por mas que alguien sepa tu clave en MD5 no le sirve de nada... o no le servia, hoy en dia con la ingenieria inversa y el uso de "raimbow tables" se puede hackear facilmente un MD5 corto y basico... como "admin", pero si usas "AdmiN54321@" es casi imposible romperlo con las pc actuales...

Lo que yo recomiendo es encriptar antes de enviarlo con JS, no usar la funcion nativa de PHP... Porque si te hacen sniffing la clave queda en el filtro sin encriptar antes de salir a la red.

Espero haberte aclarado y no haberte enliado.
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina