Foros del Web » Programando para Internet » PHP »

¿Por qué sino está el password cifrado no entra al sistema?

Estas en el tema de ¿Por qué sino está el password cifrado no entra al sistema? en el foro de PHP en Foros del Web. Buenas, tengo una gran duda. Resulta que en mi base de datos tengo una tabla ADMINISTRADOR con los campos nombre_usuario y password. Pues bien, resulta ...
  #1 (permalink)  
Antiguo 05/07/2006, 03:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
¿Por qué sino está el password cifrado no entra al sistema?

Buenas, tengo una gran duda. Resulta que en mi base de datos tengo una tabla ADMINISTRADOR con los campos nombre_usuario y password. Pues bien, resulta que esa tabla la cogí de un sitio y le inserté como administrador lo siguiente tal cual ponía:
INSERT INTO 'administrador' VALUES('admin','2a4cbce0729af73b');

El problema está en que no se por qúe hay que ponerlo cifrado la contraseña. Yo por ejemplo he intentado insertar en esa misma tabla otro administrador con lo siguiente:

INSERT INTO 'administrador' VALUES('pepote','aaaaaa');

Pero al hacer esto no me entra en el sistema(es decir , que no me loguea).
¿Por qué ocurre esto? Se puede resolver?

Gracias
  #2 (permalink)  
Antiguo 05/07/2006, 03:09
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Habría que ver el código que se encarga de comprobar si el usuario y el password son correctos.
  #3 (permalink)  
Antiguo 05/07/2006, 03:14
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 11 meses
Puntos: 10
Muy Buenas,
no te loguea poque cuando cojes el campo de password q tu o tu usuario inserta, este se encripta al enviarse para hacer la comparacion.
Si quitas eso veras como te lo coje! aunke no te lo aconsejo!

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 05/07/2006, 03:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Que yo sepa no he utilizado ningun algoritmo de encirptacion.Os pongo el codigo para que lo veais.

La 1º fase es el formulario para introducir los datos

La 2º fase es que se validen esos datos:
Código PHP:
<?php session_start();

// incluimos el script de las funciones
require_once('funciones.php'); 



if (
$_POST['nombre_usuario'] && $_POST['password'])
// acaban de intentar conectarse
{

    
$nombre_usuario $_POST['nombre_usuario'];
    
$password $_POST['password'];

    if (
login($nombre_usuario$password))
    {
      
// Si estan los datos en la base de datos,se registra el nombre de usuario
      
$HTTP_SESSION_VARS['usuario_admin'] = $nombre_usuario;
    }  
    else
    {
      
//si falla el login
      
encabezado_html('Error:');
      echo 
'No puedes ser autenticado. 
            Para ver el contenido de esta página se requiere estar logueado<br />'
;
      
poner_url('login.php''Login');
      
pie_html();
      exit;
    }      
}
?>
<center>
<?php
encabezado_html
('Administración');
if (
chequeo_usuario_admin())
  
mostrar_menu_admin();
else
  echo 
'No estas autorizado a entrar en el área de administración';

pie_html();

?>

La 3º fase la funcion login:

Código PHP:
function login($nombre_usuario$password)

// hacemos un chequeo del usuario y password con la base de datos
//si existe devuelve true
//si no existe devuelve false
{
  
// conectamos con la base de datos
  
$con conexion_bd();
  if (!
$con)
    return 
0;

  
// chequea si el nombre de usuario es único en el sistema
  
$result mysql_query("select * from administrador 
                         where nombre_usuario='$nombre_usuario'
                         and password = password('$password')"
);
  if (!
$result)
     return 
0;
  
  if (
mysql_num_rows($result)>0)
     return 
1;
  else 
     return 
0;

  #5 (permalink)  
Antiguo 05/07/2006, 03:23
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 11 meses
Puntos: 10
hola, a ver.. asi a simple vista parece q si q lo encriptas...
mira...
Código PHP:
// chequea si el nombre de usuario es único en el sistema 
  
$result mysql_query("select * from administrador  
                         where nombre_usuario='$nombre_usuario' 
                         and password = password('$password')"
); 
aqui donde pone and password = password('$password')");
password es una funcion...
si quieres q no te encripte dejalo asi:
and password = '$password'");

EDIT: las dos respuestas son = de correctas... todo dependera si quieres encriptar o no...

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #6 (permalink)  
Antiguo 05/07/2006, 03:24
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por sneider
Código PHP:
function login($nombre_usuario$password)

// hacemos un chequeo del usuario y password con la base de datos
//si existe devuelve true
//si no existe devuelve false
{
  
// conectamos con la base de datos
  
$con conexion_bd();
  if (!
$con)
    return 
0;

  
// chequea si el nombre de usuario es único en el sistema
  
$result mysql_query("select * from administrador 
                         where nombre_usuario='$nombre_usuario'
                         and password = password('$password')"
);
  if (!
$result)
     return 
0;
  
  if (
mysql_num_rows($result)>0)
     return 
1;
  else 
     return 
0;

Te has fijado en la query:

$result = mysql_query("select * from administrador
where nombre_usuario='$nombre_usuario'
and password = password('$password')");

password = password ('$password')

Eso es lo que debes hacer en el insert:

INSERT INTO 'administrador' VALUES('pepote',password('aaaaaa'));

Ya verás que así te lo coge usando encriptación, claro.

EDITO: Se me adelantó el colega jejeje.
  #7 (permalink)  
Antiguo 05/07/2006, 03:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Cojonudo, no sabía que existía una función propia del MySQL llamada password. Conocía sistemas de encriptación como hash, crypt y poco mas. Muchas gracias a todos por vuestra grandisima disposición.
  #8 (permalink)  
Antiguo 05/07/2006, 03:42
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 11 meses
Puntos: 10
no te dejes la de md5

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 07:22.