Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/06/2011, 15:00
Avatar de repara2
repara2
 
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: Encriptar contraseña

Claro que sí.
Cualquier string puede encriptarse en md5() de esta manera.

Código PHP:
Ver original
  1. $var = "Hola";
  2. $var_encript = md5($var);

Ahora $var_ecript es una cadena de 32 char. md5() convierte cualquier cosa que le pases en un char de 32 incluso una cadena vacía.

Ahora tienes dos escenarios posibles, registro y login.
En el registro del usuario, el usuario escribirá en un form usuario y contrasena.
Da igual qué contrasena haya escrito, tú insertas en la DB, por ejemplo:

Código MySQL:
Ver original
  1. INSERT INTO USERS user = "$user", password =".md5($password).";

Si miras la db, verás que en el campo constrasena tienes un char de 32, da igual lo que el usuario haya escrito. Si ha escrito "pepe", md5() te insertará la cadena encriptada. En registro no hay nada mas.

Al hacer login de usuario, normalmente tu haces algo así:
1. El usuario inserta user y password en un formulario
2. Tu consultas la Db con algo asl

Código MySQL:
Ver original
  1. SELECT * FROM USER WHERE USERNAME = $user AND PASSWORD = $password;
3. Pero, a partir de ahora, si has guardado la contrasena encriptada, no tienes que consultar si el campo password es IGUAL a lo que pone el usuario, sino que tienes que consultar que el campo password es igual al md5() de lo que pone el usuario:

Código MySQL:
Ver original
  1. SELECT * FROM USER WHERE USERNAME = $user AND PASSWORD = md5($password);

Recuerda que md5() no puede desencriptarse, es decir, tu NO sabrás las constrasenas de los usuarios. Si la pierden tendrás que resetearlas.
Otra cosa, si tu sistema es comercial o guardas información de usuarios y trabajas en un server compartido o no privado, es un requerimiento legal que las passwords estén encriptdas. además de una buena pŕactica.
Si pones un poco de código será mas facil ayudarte. Espero que te sirva, salu2

PD: perdona por la "enie" y los acentos pero tengo un teclado alemán!
__________________
Fere libenter homines, id quod volunt, credunt.