Comunidad de diseño web y desarrollo en internet online

apoyo desencriptando md5

Citar            
MensajeEscrito el 04 Nov 2011 04:03 pm
donde ubicar la linea de codigo para desencriptar contraseña en login.php al momento de logearme, con la nueva contraseña generada por MD5 que se envia al correo del usuario olvidadiso

esta es la funcion que permite desencriptar

Código PHP :

function PwdHash($pwd, $salt = null)
{
    if ($salt === null)     {
        $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
    }
    else     {
        $salt = substr($salt, 0, SALT_LENGTH);
    }
    return $salt . sha1($pwd . $salt);
}


este es la linea de codigo que nose en que parte del login.php devo copiar

Código :

$pwd === PwdHash($pass,substr($pwd,0,9))



login.php

Código PHP :

if (isset($_POST["btn_ingresar"]) == "Entrar"){         

      //Se define un usuario cero
      $usuario=0;
      $user = htmlentities($_POST["user"], ENT_QUOTES); 
      $pass = htmlentities($_POST["pass"], ENT_QUOTES); 
            
      // Busca como usuario normal
      $sql="SELECT * FROM usuario WHERE usuario = '$user'";   
      $resultado_u=mysql_query($sql, $link);
      
      
      if (mysql_num_rows($resultado_u)!=0){               
            $usuario=1;
      }   
      
      if ($usuario==0){
              $mensaje="El nombre de usuario no es válido";
      }elseif ($usuario==1){
            
            
            $sql="SELECT ...
                  WHERE  usuario = '$user'
                  AND pass = '$pwd' ;
            $resultado=mysql_query($sql, $link);
            
            if (mysql_num_rows($resultado)!=0){
                     // Acceso autorizado, se deriva a página según tipo de usuario.
                 $db_user = mysql_fetch_array($resultado);
                 session_start();              
                 // Crea sesión del usuario autentificado.                 
                 $_SESSION['campo'] = $db_user[campo]; 
                 $_SESSION['campo'] = $db_user[campo];
                 $_SESSION['campo'] = $db_user[campo];
                 $_SESSION['campo'] = $db_user[campo];
                 $_SESSION['campo'] = $db_user[campo]; 
                 $_SESSION['campo'] = $db_user[campo];                  
                 $_SESSION['campo'] = $db_user[campo]." ".$db_user[campo]; 
                 log_usuario($sql, 'EXITO - Ingreso al Sitio');
                 echo "<html><head><META HTTP-EQUIV='REFRESH' CONTENT='1;URL=login_menu.php'></head></html>"; exit;          
            }else{
                  $mensaje="Contraseña de usuario inválida"; 
            }                 
        }           
   }

Por angelo27

Claber

136 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2011 04:27 pm
El algoritmo MD5 es irreversible. Cuando cifras una cadena de texto con MD5 obtienes un hash, pero a partir del hash no puedes obtener el texto original.

Tu concepción de recuperación de contraseña es errónea. O le mandas por correo la contraseña en claro o le mandas por correo una URL única para que el usuario ingrese una nueva contraseña.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Nov 2011 05:04 pm
entonces como explicas este ejemplo http://php-login-script.com/ que baje de la red donde recupera la contraseña (forgot password). con MD5

forgot.php

Código PHP :

$new_pwd = GenPwd();
$pwd_reset = PwdHash($new_pwd);
...
$message = 
"Here are your new password details ...\n
User Email: $user_email \n
Passwd: $new_pwd \n
...
mail($user_email, "Reset Password", $message,
    "From: \"Member Registration\" <auto-reply@$host>\r\n" .
     "X-Mailer: PHP/" . phpversion());
...   


y al ingresar la nueva contraseña para logearme hace esto


login.php

Código PHP :

...
function [color=#EF2929]PwdHash[/color]($pwd, $salt = null)
{
    if ($salt === null)     {
        $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
    }
    else     {
        $salt = substr($salt, 0, SALT_LENGTH);
    }
    return $salt . sha1($pwd . $salt);
}

...
IF ($pwd === PwdHash($pass,substr($pwd,0,9))){
...
}
...


ayudame a entender porf.

Por angelo27

Claber

136 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2011 05:29 pm
No sé lo que dice ese script ni me interesa. No voy a zambullirme en un código ajeno que por lo que se ve es bastante extenso solo para explicártelo a ti. Lo lamento pero no lo voy a hacer.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Nov 2011 09:23 pm
Si angelo27..... el MD5 no te permite retroceder a la cadena que se encripto!

!Que se hace? :

Se crea una nueva contraseña y se envía por correo,
Se almacena la clave en otro lugar encriptado con Base64 y cuando la necesitan la desencripta ya la envía.
Se crea un acceso TEMPORAL al sitio donde se puede hacer el cambio de clave según el id del usuario!

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 04 Nov 2011 09:25 pm
en el código que muestras, no usan MD5, usan "sha1" que es DIFERENTE

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 04 Nov 2011 11:08 pm
GRACIAS JPCW TU SI!
no tendras un ejemplo o donde descargo un ejemplo para estudiarlo y adaptarlo al mio si no fuera mucho pedir , gracias de antemano

Por angelo27

Claber

136 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.