Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/03/2015, 04:29
Avatar de fbedia
fbedia
 
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por NueveReinas Ver Mensaje
Hola gente

Me encuentro, como algunos ya saben, empezando a trabajar sobre PHP, bases de datos, MySQLi, sesiones, etc. (Soy frontender, disculpen si a veces soy molesto :P )

Me surgió la duda de cómo puedo mandar la contraseña del registro encriptada hacia la base de datos y cómo desencriptarla para después hacer el login.

¿Qué método es el más seguro para encriptar/desencriptar sin SSL?

Imagino que, aunque mi proyecto es de a escala local, algún curioso podría tratar de agarrar la contraseña 'al vuelo' por medio de Wireshark o métodos parecidos.

Me supongo que para desencriptar debe ser algo como "si la $password es igual a '$password+encriptación', entonces crea la sesión/se efectúa el login".

¿Alguna ayuda y/o consejo al respecto?

jrasias d antebraso
En primer lugar encripta la password. Puedes usar el método de encriptacion que consideres: md5, sha1, crypt, etc... o incluso combinar varios como te pongo en el siguiente ejemplo:

Código PHP:
Ver original
  1. $password = "123456789"; //password introducida por usuario
  2. $password_encriptada = md5(sha1($password)); //password encriptada, primero sha1 y despues md5

En el registro de usuario guardas $password_encriptada en la base de datos, la cual tendrá un valor tal que: 3f$%6ds%SDF4DSdk(=f3 (por ejemplo)

En el login, haces lo mismo... encriptas la password introducida y comparas la cadena encriptada con la que hay en base de datos. Si ambas cadenas coinciden, es que la password es correcta.
__________________
Follow me on twitter @franbedia