Ver Mensaje Individual
  #1  
Antiguo 07-11-2015
marvajes marvajes is offline
Registrado
NULL
 
Registrado: nov 2015
Posts: 6
Reputación: 0
marvajes Va por buen camino
Question Comparacion de Hash MD5 Delphi-Oracle no coincide

Hola Foro,
Disculpen la consulta, estoy desarrollando un login en Delphi 2010. Utilizo los componentes Unidac, con una conexión directa a Oracle.
En la base de datos tengo una tabla Usuarios con campos(codigo_usuario,usuario,contrasena,estado)
el campo contrasena almacena el hash en md5 de la contrasena.

Tengo la idea de consultar la tabla desde la aplicacion, comparando usuario y contrasena, para brindarle acceso al usuario o negarse lo. El problema que tengo, radica en la comparación del hash.
Tengo el siguiente código
Tengo un solo usuario en la tabla usuario, la contrasena es 12345 y el hash es 827ccb0eea8a706c4c34a16891f84e7b

Código Delphi [-]
    Hash_contrasena:=CalcHash2(Texto_Contrasena.Text,haMD5); // contrasena ingresada 12345 hash generado      //827ccb0eea8a706c4c34a16891f84e7b

   // ShowMessage(Hash_contrasena);
    //Lanzando consulta para comprobar que el usuario y contraseña ingresados existen en la base de datos
    // Y verificar que el usuario esta activo.
     Consulta.SQL.Clear;
     Consulta.SQL.Add('SELECT USUARIO,CONTRASENA,ESTADO FROM USUARIO WHERE USUARIO=:INGRESO_USUARIO');
     Consulta.ParamByName('INGRESO_USUARIO').AsString:=Texto_usuario.Text;
     //Consulta.ParamByName('INGRESO_CONTRASENA').AsString:=Hash_contrasena; Comentada por problemas del hash que mencione
     try
       Consulta.Open;
       TEXTO_USUARIO.Text:=Consulta.FieldByName('CONTRASENA').AsString; // Resultado muestra este hash //b66d99aa0d2457fe5bccf2232a1c3140
     finally

     end;

No entiendo a que se deba este problema: En conclusión.
Hash en Base de datos: 827ccb0eea8a706c4c34a16891f84e7b
Hash Generado con CalcHash2 : 827ccb0eea8a706c4c34a16891f84e7b
Consulta para obtener el hash de la base de datos: b66d99aa0d2457fe5bccf2232a1c3140

Cual creen que sea la razón de este problema, sera que se debe a la magnitud de la cadena extraída?
Ya había intentado comparar el hash directamente contra la base de datos, pero entonces ya no devuelve nada.
Muchísimas gracias por su ayuda y aporte.
Saludos.
Responder Con Cita