Série da semana: Primeiros passos no Angular

Veja mais

Login no Delphi

11/03/2019

8

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?
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.
Responder