Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Encriptar y desencriptar contraseña

Estas en el tema de Encriptar y desencriptar contraseña en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/03/2015, 03:59
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Información Encriptar y desencriptar contraseña

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
  #2 (permalink)  
Antiguo 23/03/2015, 04:29
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 155
Antigüedad: 11 años, 2 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
  #3 (permalink)  
Antiguo 23/03/2015, 04:33
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por fbedia Ver Mensaje
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.
Muchas gracias por el dato.
Mi duda es, ¿no se crea ningún 'hash' único ni nada parecido?
O sea, si encripto, por ejemplo, "mipassword" con MD5, y el resultado es "3f$%6ds%SDF4DSdk(=f3", quiero creer que al desencriptar "3f$%6ds%SDF4DSdk(=f3" el resultado no va a ser "F5F4FWE65WE4FEW654EW6" o algo así.

Pregunto porque me ha pasado un par de veces con AES.
__________________
¿Te sirvió la respuesta? Deja un +1
  #4 (permalink)  
Antiguo 25/03/2015, 05:35
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Encriptar y desencriptar contraseña

Que yo sepa md5 es un algoritmo de encriptación de una sola vía..... que no se puede desencriptar.
  #5 (permalink)  
Antiguo 25/03/2015, 05:40
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por Jilti Ver Mensaje
Que yo sepa md5 es un algoritmo de encriptación de una sola vía..... que no se puede desencriptar.
Gracias por la respuesta, olvidé marcar el tema como solucionado.

De todas formas, desde PHP recomiendan NO usar MD5 ni SHA-1...
Por eso terminé usando crypt().

Saludos.
__________________
¿Te sirvió la respuesta? Deja un +1
  #6 (permalink)  
Antiguo 25/03/2015, 12:27
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 2 meses
Puntos: 379
Respuesta: Encriptar y desencriptar contraseña

Cita:
¿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.
Como te gusta complicarte la vida, si tu proyecto es local implementa ssl en tu servidor de http
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 25/03/2015, 12:31
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por hhs Ver Mensaje
Como te gusta complicarte la vida, si tu proyecto es local implementa ssl en tu servidor de http
¡No, no, no!
Con local me refiero a que la escala del proyecto es local; que no va mucho más allá de mi barrio, digamos.

Jajajaja.
__________________
¿Te sirvió la respuesta? Deja un +1
  #8 (permalink)  
Antiguo 25/03/2015, 12:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 2 meses
Puntos: 379
Respuesta: Encriptar y desencriptar contraseña

De todas formas es mejor que utilices ssl
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 25/03/2015, 12:57
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por hhs Ver Mensaje
De todas formas es mejor que utilices ssl
Cuando pueda pagar un certificado lo haré.
Mientras tanto, contraseñas bien encriptadas (no MD5, no SHA-1) y va bien.
__________________
¿Te sirvió la respuesta? Deja un +1
  #10 (permalink)  
Antiguo 25/03/2015, 13:08
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 2 meses
Puntos: 379
Respuesta: Encriptar y desencriptar contraseña

vaya creo que te hace falta investigar un poco mas al respecto con esto:
Cita:
Cuando pueda pagar un certificado lo haré.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 25/03/2015, 13:13
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 14 años, 1 mes
Puntos: 194
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por NueveReinas Ver Mensaje
Cuando pueda pagar un certificado lo haré.
Mientras tanto, contraseñas bien encriptadas (no MD5, no SHA-1) y va bien.
Tanto MD5 como SHA son funciones que implementan algoritmos de hasheo, no de encriptado.

Encriptar es ofuscar y tiene vuelta atras
Hashear NO tiene vuelta atras, ya que existe perdida de información en el proceso

Si tienes en una variable todo un libro y lo Hasheas, el largo del hash resultante sera igual que si hasheas "hola mundo" siendo evidente que no puedes volver atras eso...

Espero haber sido claro. Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #12 (permalink)  
Antiguo 25/03/2015, 13:13
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Mi proveedor de hosting + dominio vende certificados SSL, por eso lo dicho.
__________________
¿Te sirvió la respuesta? Deja un +1
  #13 (permalink)  
Antiguo 25/03/2015, 13:29
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 2 meses
Puntos: 379
Respuesta: Encriptar y desencriptar contraseña

Cita:
Mi proveedor de hosting + dominio vende certificados SSL, por eso lo dicho.
y? eso no significa que no puedas utilizar ssl en tu sitio.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #14 (permalink)  
Antiguo 25/03/2015, 13:29
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por hhs Ver Mensaje
y? eso no significa que no puedas utilizar ssl en tu sitio.
¿Me enviarías más datos por MP? ¿O este tema [ya solucionado] está bien para eso?
__________________
¿Te sirvió la respuesta? Deja un +1
  #15 (permalink)  
Antiguo 25/03/2015, 13:47
 
Fecha de Ingreso: noviembre-2012
Mensajes: 21
Antigüedad: 8 años, 10 meses
Puntos: 1
Respuesta: Encriptar y desencriptar contraseña

Muchas gracias :)
  #16 (permalink)  
Antiguo 25/03/2015, 14:50
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 8 años, 2 meses
Puntos: 379
Respuesta: Encriptar y desencriptar contraseña

Si estas en un servicio compartido lo puedes hacer desde el panel de control. Revisa este articulo es para cpanel pero de seguro encuentras para plesk
https://kb.uk2.net/web-hosting/how-t...lf-signed-ssl/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #17 (permalink)  
Antiguo 25/03/2015, 15:11
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 8 años
Puntos: 145
Respuesta: Encriptar y desencriptar contraseña

Cita:
Iniciado por hhs Ver Mensaje
Si estas en un servicio compartido lo puedes hacer desde el panel de control. Revisa este articulo es para cpanel pero de seguro encuentras para plesk
https://kb.uk2.net/web-hosting/how-t...lf-signed-ssl/
Gracias por el dato. Lo he leído por encima. Más tarde lo pruebo.
__________________
¿Te sirvió la respuesta? Deja un +1

Etiquetas: contraseña, desencriptar, encriptar, mysql, registro
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 14:25.