Olá galera, nesta Quick Tips irei continuar mostrando o uso do MD5, porém agora pondo em prática a nossa Unit  uMD5 .

Vamos inicialmente fazer uma validação simulando uma tela de Login, vou preparar um exemplo com XML e ClientDataSet, mas nada os impede de reaproveitar e adaptar a estrutura para o seu banco de dados.

 

Vamos ao Exemplo!

Crie uma nova aplicação e salva o formulário como uFrmLogin, adicione um outro formulário e salve o mesmo como uFrmCadastroUsuario

 

  • uFrmCadastroUsuário

 

 Vamos fazer um cadastro de usuário e utilizar a função MD5String, para criptografar a senha dos usuários. Desenvolvi uma tela de cadastro simples, mas a única coisa que importa é o Clique do Botão Gravar, onde o mesmo irá fazer a conversão do que o usuário digitar para a criptografia do MD5.

No caso o caracter informado foi 123, e ao utilizarmos o MD5String temos o resultado

202CB962AC59075B964B07152D234B70

 


 

Veja que estamos utilizando a função MD5String, então devemos dar uses em uDM5.

 

procedure TFrmCadastroUsuario.BtnGravarClick(Sender: TObject);

begin

  CDSTabelaUsuario.FieldByName('SENHA').AsString :=    

  MD5String(CDSTabelaUsuario.FieldByName('SENHA').AsString

 

  CDSTabelaUsuario.Post;

end;

 

  • uFrmLogin

 

uFrmLogin - Adicione dois LabeledEdits (EdtUsuario, EdtSenha), respectivamente, e um BitBtn(BtnLogar), além de um Panel(nada importante com este apenas para Layout do Formulário.

 

uFrmLogin - daremos uses em uMD5

 


 

 

 

procedure TFrmLogin.BtnLogarClick(Sender: TObject);

begin

  CDSTabelaUsuario.Filtered := False;

  CDSTabelaUsuario.Filter := ' USUARIO = ' + QuotedStr(EdtUsuario.Text) +

                             ' AND SENHA = ' + QuotedStr(MD5String

(EdtSenha.Text));

  CDSTabelaUsuario.Filtered := True;

 

  if CDSTabelaUsuario.IsEmpty then

  begin

    ShowMessage('Usuário e/ou Senha inválidos');

    Application.Terminate;

  end

  else

    ShowMessage('Acesso Permitido!!!!');

end;

 

Com estas duas telas podemos cadastrar uma senha para os usuário criptografada e se dermos um select nesta tabela não veremos a senha mas sim os caracteres criptografados.

Quanto a tela de Login podemos utilizar um padrão de projeto muito conhecido, chamado Singleton, mas nosso objetivo nesta Quick não é fazermos a utilização do Padrão mas sim mostrar a utilização do MD5

               

 

Fico por aqui e na próxima Quick Tips, onde veremos a function MD5Arquivo, para validarmos se arquivos são idênticos ou não.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br