Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Comparacion de Hash MD5 Delphi-Oracle no coincide (https://www.clubdelphi.com/foros/showthread.php?t=89357)

marvajes 07-11-2015 15:54:04

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.

marvajes 13-11-2015 21:27:59

Problema de commit
 
Hola, perdonen por haber realizado la pregunta, el problema era el siguiente. Tengo 2 usuarios con diferentes roles, uno puede realizar update sobre la tabla y el otro solo puede hacer select y lo que sucedia es que cuando realizaba un cambio en la sesion de un usuario se reflejaban los cambios sin embargo cuando el otro usuario (usuarios a nivel de bd)intentaba autenticarse, aun conservaba el registro anterior. La solución un Commit.
Saludos.


La franja horaria es GMT +2. Ahora son las 09:28:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi