Login no Delphi
11/03/2019
0
Tenho um programa com uma tela de login, com os usuários ADMINISTRADOR e CAIXA, como faço para verificar se o usuário e a senha estão batendo?
Lucas Araújo
Curtir tópico
+ 0
Responder
Post mais votado
11/03/2019
Olá Lucas, tudo bem?
A grosso modo, você precisa simplesmente fazer um select pelo nome do usuário e verificar se retorna alguma coisa do banco, se retornar um registro então o usuário está batendo. Depois pega o valor do campo Senha e compara com o valor da senha digitada e se forem iguais então pode logar no sistema.
O mais correto é guardar a senha criptografada. No delphi (versões XE) você tem a unit System.Hash para gerar um hash criptografado. Suponha que a senha seja 123456, então você quando cadastrar o usuário, antes de gravar no banco ao invés de passar "123456" faça THashMD5.GetHashString('123456'). O valor retornado desta função é um numero parecido com e10adc3949ba59abbe56e057f20f883e.
Com esse valor gravado no banco ninguém pode fazer engenharia reversa para descobrir qual é a senha.
E toda a vez que for fazer login repita os passos que dei anteriormente: faça um select no banco pelo nome do usuário, e o valor da senha retornada faça a comparação:
if THashMD5.GetHashString('123456') = senhaDoUsuario then
result:=true;
Espero ter ajudado, um forte abraço e fique com Deus.
A grosso modo, você precisa simplesmente fazer um select pelo nome do usuário e verificar se retorna alguma coisa do banco, se retornar um registro então o usuário está batendo. Depois pega o valor do campo Senha e compara com o valor da senha digitada e se forem iguais então pode logar no sistema.
O mais correto é guardar a senha criptografada. No delphi (versões XE) você tem a unit System.Hash para gerar um hash criptografado. Suponha que a senha seja 123456, então você quando cadastrar o usuário, antes de gravar no banco ao invés de passar "123456" faça THashMD5.GetHashString('123456'). O valor retornado desta função é um numero parecido com e10adc3949ba59abbe56e057f20f883e.
Com esse valor gravado no banco ninguém pode fazer engenharia reversa para descobrir qual é a senha.
E toda a vez que for fazer login repita os passos que dei anteriormente: faça um select no banco pelo nome do usuário, e o valor da senha retornada faça a comparação:
if THashMD5.GetHashString('123456') = senhaDoUsuario then
result:=true;
Espero ter ajudado, um forte abraço e fique com Deus.
Hélio Devmedia
Responder
Clique aqui para fazer login e interagir na Comunidade :)