Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/04/2009, 12:48
Avatar de Acron_0248
Acron_0248
 
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: De que manera es mas seguro?

Hmmmm a ver, si es cosa de cuál de los dos algoritmos ofrece más seguridad, la respuesta es crypt, no md5, por otro lado, la seguridad ofrecida por crypt es relativa y depende de lo que el sistema operativo ofrezca a nivel de algortimos.

== md5 ==

Es común no porque sea más seguro que crypt, simplemente es más sencillo y portable, sin importar el sistema operativo o las versiones de PHP en diferentes servidores, md5 estará allí disponible para su uso ofreciendo siempre el mismo tipo de funcionalidad.

md5 produce un hash no reversible, es un cifrado de una sola vía, pero como ya dijo sergi_climent, esto es solo teoría, la realidad tiende a ser distinta.

Actualmente md5 no se considera seguro porque se le conoce problemas de colisión (dos textos diferentes pueden producir el mismo hash) y además, con el poder computacional de hoy día (decodifaciones usando GPU, rainbow tables, etc...), es poco resistente a ataques de fuerza bruta.

En cualquier implementación se puede tratar de utilizar md5 de forma que la clave sea segura usando algún salt o combinaciones como las que coloca elprogra, pero, md5 continuará siendo un hash de 32 bits así que no hay una solución perfecta.


== crypt ==

Al igual que md5, es un cifrado de una sola vía, el hash que produce no se puede revertir (teóricamente).

crypt a diferencia de md5, utiliza salt de forma automática, aún si el usuario no provee una, crypt creará un salt, lo cifrará y eso será usado para cifrar la cadena de texto que se quiere proteger.

crypt se basa en DES lo que es algo importante a considerar ya que DES ha sido quebrado así que "teóricamente" una cadena de texto generada con crypt en PHP bien puede ser decodificada.

crypt puede utilizar diferentes algoritmos durante el cifrado, DES, Extended DES, MD5 y Bowfish pero ello depende de lo que ofrezca el sistema operativo, si el sistema operativo no soportara blowfish, una aplicación de PHP que utilice tal algoritmo no funcionaría como se espera.

Esto cambia con la llegada de PHP 5.3.0 la cual permite el uso de los diferentes algoritmos sin importar lo que ofrezca o deje de ofrecer el sistema, pero dado que aún la versión estable de php es 5.2.9 y que muchos servidores no usan la última versión estable disponible, el uso de crypt terimna limitándose a los algoritmos más débiles (CRYPT_STD_DES y CRYPT_MD5) para ser portable.

Mas allá de las deficiencias de crypt, el solo hecho de usar salt automáticamente y poder usar diferentes algoritmos, lo hace más seguro que md5 (si, en md5 puedes tú agregar en salt, pero no todos lo hacen ;))


En la actualidad ninguno de los dos puede considerarse realmente seguro, ambos han sido quebrados (al menos md5, des y blowfish) y con el poder que ofrecen los computadores de hoy para decifrar códigos, es difícil llamar a cualquiera de las dos "soluciones seguras".


En mi particular prefiero usar mhash o directamente mcrypt pero el ver servidores que no habiliten estas extensiones no es realmente raro.
__________________
Usuario Reigistrado de linux #399288