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