Foros del Web » Programando para Internet » PHP »

Recordar una contraseña almacenada en mysql (encriptada con sha1)

Estas en el tema de Recordar una contraseña almacenada en mysql (encriptada con sha1) en el foro de PHP en Foros del Web. Tengo una duda a ver si me la puede confirmar alguien.... He creado una web con registro de usuarios, en la cual guardo la contraseña ...
  #1 (permalink)  
Antiguo 10/08/2010, 10:43
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 3 meses
Puntos: 0
Recordar una contraseña almacenada en mysql (encriptada con sha1)

Tengo una duda a ver si me la puede confirmar alguien....


He creado una web con registro de usuarios, en la cual guardo la contraseña de cada usuario encriptada con sha1 en una base de datos mysql.

Quiero crear una opcion para que en caso de que uno de los usuarios no recuerde la contraseña, que si introduce su nickname y su email de registro, se le mande a su correo la contraseña....

El problema viene que al estar encriptada en sha1, creo que no se puede decodificar de la base de datos para enviarsela al usuario por correo....

Es esto asi???

Me seria mas sencillo que en vez de recordar la contraseña, se creara una nueva aleatoriamente que se le mandara por correo al usuario??

Gracias
  #2 (permalink)  
Antiguo 10/08/2010, 10:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

bueno a mi parecer seria bueno que le pusieras un formulario para que el ingrese su nueva contrasea enviale al correo un linkm bueno asi lo vi en una pagina no recuerdo ahorita cual xq me paso hace un buen tiempo y me enviaron algo asi bueno es una sugerencia ve cual otra te pueden dar suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 10/08/2010, 10:51
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

Entonces estaba en lo cierto con lo de que el sha1 no lo puedo decodificar verdad??


Esa solucion me parece buena, al igual que la de generar una nueva contraseña aleatoriamente y enviarla a su correo, basicamente la programacion de ambas no variaria mucho
  #4 (permalink)  
Antiguo 10/08/2010, 10:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

bueno es cuestion de gustos a mi me gusto la forma en que te dig ya que como usuario no me asignaron nada sino que me dieron a elegir mi contraseña y no tub q estar cambiando luego de ingresar pero es cuestion de gustos suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 10/08/2010, 10:55
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

Pero entonces es cierto que sha1 no se puede decodificar Carlos??


Muchas gracias por tu tiempo y tus respuestas Carlos, me estas siendo de ayuda :)
  #6 (permalink)  
Antiguo 10/08/2010, 11:01
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

bueno no e trabajado mucho con sha1 sino con md5 pero creo q no es dificil que la desencripten, habra kien se ponga y lo haga pero normalmente creo que es dificil de hacer y estamos aki ar ayudar suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 10/08/2010, 12:30
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

Al final lo que he hecho es que el usuario introduzca su nickname y su email, y si se encuentran registrados en la base de datos, y coincide dicho nickname con el email de registro, se le envia un mensaje al correo indicado con la nueva contraseña, e indicandole que si accede a su perfil en el sistema, podra modificarla por la que prefiera.

Me funciona correctamente asi que aqui dejo parte del codigo por si le puede ser de ayuda a alguna otra persona:


INTRODUZCO EL NICK Y EL EMAIL
-miro en la base de datos si esta registrado dicho nick
-ESTA REGISTRADO
-compruebo si coincide el email introducido con el de registro de dicho nick
-SI COINCIDE
--> Envio el nuevo password al correo (enviarnuevopass.php)
-NO COINCIDE
--> Muestro un mensaje que indica que el registro de dicho nick no se hizo con el correo introducido

-NO ESTA REGISTRADO
--> Muestro un mensaje que indica que no se encuentra registrado dicho nick

codigo enviarnuevopass.php
Código:
   function enviarnuevopass($nickname,$email)
	{

	   conectar(1);     //Funcion que me conecta con la base de datos

	   $pass = substr(sha1(rand()),0,8);
	   
	   //encriptamos la contraseña para evitar que un ataque a la base de datos pueda conseguirlas
   	   $pass2=sha1($pass);
		
	   //grabamos la nueva contraseña en la base de datos
	   mysql_query("UPDATE clientes SET password = '$pass2' WHERE nickname = '$nickname' ");
	   

	   //Definimos el mensaje que enviaremos al usuario para notificarle de su nuevo password
	   $cuerpo= "Hola $nickname, aqui tienes tu nuevo password para poder acceder a la Tienda Virtual: $pass";
	   $cuerpo .= "<br> Si lo deseas podras modificarlo accediendo a tu perfil dentro del sistema";
	   $remite= "Mi nombre de remite";
	   $asunto= "Nuevo password para acceder al sistema";
   
	   enviarcorreo($email,$nickname,$cuerpo,$remite,$asunto);  //Funcion creada por mi para enviar un correo por medio de phpmailer
		
	   conectar(0);

	}

Gracias por vuestra ayuda!
  #8 (permalink)  
Antiguo 23/12/2010, 11:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Recordar una contraseña almacenada en mysql (encriptada con sha1)

hola que tal, sha1 es una un metodo de las familia de los hashes si mas no recuerdo estos metodos no so reversible por un procedimiento rapido, pero lo cual si sabemos que para algo que se le aplica un hash o sha1 o md5 obtendremos un hash espesifico, puedas pasarlo por una tabla Rainbow que son simples tablas de cadenas con su respectivo hash, en el cual se busca el hash que coincida con el que tenemos y vemos la cadena qeu tiene asocida............espero te sirva................pd esto es un poco inpractico, ya que por primero las tablas esta pueden pesar desde 1gb hasta 32 gb mas o menos, y buscas un hash que corresponda puede tardarse un buen rato............yo me inclino con la opcion anterior del formulario y mandarle una nueva........

puedes ver algo acerda de los hashes y las tablas rainbow en esta pag
http://www.emezeta.com/articulos/criptoanalisis-las-tablas-rainbow

Etiquetas: contraseña, mysql, recordar, almacenadas
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 21:27.