Foros del Web » Programando para Internet » PHP »

crypt() Usarlo para contraseñas

Estas en el tema de crypt() Usarlo para contraseñas en el foro de PHP en Foros del Web. Hola amigos, he estado mirando esta funcion en php.net y veo que encriptar si encripta pero dice que no hay ninguna funcion para desencriptar, y ...
  #1 (permalink)  
Antiguo 13/12/2004, 10:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 51
Antigüedad: 19 años, 4 meses
Puntos: 0
crypt() Usarlo para contraseñas

Hola amigos, he estado mirando esta funcion en php.net y veo que encriptar si encripta pero dice que no hay ninguna funcion para desencriptar, y mi duda viene ahi. Me gustaria utilizar esta funcion par encriptar las contraseñas de losdistintos usuarios para almacenarlos en una base de datos, pero quiera saber como puedo verificar que la contraseña que ellos introducen es verdadera.

La solucion seria encriptar las contraseña elos introducen y compararla con la cadena (ya encriptada) que se encuentra en la base de datos, o existe otra forma distinta?

Habria alguna forma de recuperar esa contraeña encriptada en el caso que se olvidasen de esa clave? En fin esto tampoco seria mucho problema puesto que se podria sobreescribir en la base de datos la contraseña y ya esta, pero es por saber las limitaciones.

En fin solo me queda agradecerles vuestra ayuda.

Un saludo.
  #2 (permalink)  
Antiguo 13/12/2004, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En PHP se usa mucho MD5() que es otro "hash" para lo mismo .. encriptar tu cadena origen .. Ese dato encriptado es el que guardas en tu BD y al hacer login tu usuario lo encritas denuevo (lo que tu usuario ingresa) y lo comparas con lo que tienes en tu BD ... No hay otra forma .. pues no se puede "desencriptar".

Si tu usuario olvida la contraseña .. tendrás que generarle una nueva, encriptarla -> guardarla en tu BD y la contraseña que generastes enviarsela por e-mail o enseñarsela.

Así es el sistema para trabajar con ese tipo de contraseñeas .. Los "pro's" son que ni tu mismo como "administrador" vas a saber esas contraseñas .. pero siempre puedes cambiarlas (y avisar a tu usuario claro ..).

Un saludo,
  #3 (permalink)  
Antiguo 13/12/2004, 18:10
 
Fecha de Ingreso: diciembre-2004
Mensajes: 51
Antigüedad: 19 años, 4 meses
Puntos: 0
Muchas gracias Cluster, como siempre un 10 para ti.

Un saludo.
  #4 (permalink)  
Antiguo 13/12/2004, 20:27
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Cluester, y que tal si al registrar el usuario, hago exactamente lo que dices de guardar la contraseña encriptada con md5(), pero a su vez, guardo la contraseña "limpia" en otra tabla, para así tener control y además, cuando se olvidan las contraseñas, siempre devolverles la original...

Hago esta pregunta ya que tu sabes mucho y puedes decirnos los pro's y contras de esto, quizas esto sea menos seguro, aunque no lo se, ya que si alguien tiene acceso a la DB da igual si ve el codigo md5() o si ve la clave original, ya que podrá borrarla/cambiarla de todas formas...

Bueno, haber que comentas.
__________________
I Love Programming...
  #5 (permalink)  
Antiguo 14/12/2004, 05:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Cluester, y que tal si al registrar el usuario, hago exactamente lo que dices de guardar la contraseña encriptada con md5(), pero a su vez, guardo la contraseña "limpia" en otra tabla
Bueno . en ese caso no tiene sentido que encriptes tu contraseña .. no crees? ..

Por supuesto que si el administrador de turno entra a tu DB ..y todo el resto de datos no está encriptado también los va a ver .. También dependiendo de los permisos que tome el "intruso" al entrar a tu BD pues .. va a poder cambiar tus contraseñas. Pero, .. se trata de ponerlo algo más "dificil" al curioso de turno (lease: Administrador de tus BD) para que no use tus sistemas "limpiamente". Si cambia la contraseña .. bueno . .puede cambiarla -> entrar y volver a dejar lo que había .. En muchos casos tu BD poco puede decir si hay modelo de datos complejos con relaciones y demás historias.

En fin .. es cosa de gustos. Yo prefiero encriptarlas .. aunque sé que el resto de datos no está encriptado.

Un saludo,
  #6 (permalink)  
Antiguo 14/12/2004, 18:39
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Muchas gracias, me ha quedado claro.
__________________
I Love Programming...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:28.