MD5 em Delphi 2010 - Parte I
Veja nesta Quick MD5 do Indy 10
Olá galera, nesta Quick Tips irei mostrar como podemos trabalhar com MD5 do Indy 10 do Delphi 2010. O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P por exemplo) na verificação de integridade de arquivos e logins.
Os hashes MD5 de 128-bit (16-byte) são normalmente representados por uma sequência de 32 caracteres hexadecimais. Veja um exemplo:
WESLEY YAMAZACK BATISTA com a conversão temos o seguinte 8B9FFE2305DF759FB68E5E0D9BB77CEE
Inicialmente vou mostrar como criarmos a estrutura do MD5, em uma Unit, a fim de reaproveitarmos a mesma em outros projetos, evitando reescrever a rotina a todo o momento que for necessário.
Vamos ao Exemplo!
Crie uma nova Unit e salve com o nome uMD5, esta Unit não teremos uma classe mas apenas a implementação dos métodos evitando assim a necessidade de se criar um Objeto para podermos utilizar as funções. Mãos a Obra!
unit uMD5;
interface
uses IdHashMessageDigest, Classes, SysUtils;
function MD5String(const Value: string): string;
function MD5Arquivo(const Value: string): string;
implementation
{Função : MD5String(Const Value : String): String;
Objetivo : Esta função serve para retornarmos Hash de um String em Hexadecimal
Dicas de Uso :
- Criptografar uma senha e salvar a mesma no banco
- Validação de usuário com MD5 são seguras e precisas
- Criptografar determinados dados ao serem enviados ao Banco
- Criptografar todos os dados de uma determinada tabela
Modo de Usar : ShowMessage(MD5String(EdtSenha.Text)); }
function MD5String(const Value: string): string;
var
xMD5: TIdHashMessageDigest5;
begin
xMD5 := TIdHashMessageDigest5.Create;
try
Result := xMD5.HashStringAsHex(Value);
finally
xMD5.Free;
end;
end;
{Função : MD5Arquivo(Const Value : String): String;
Objetivo : Esta função serve para retornarmos Hash de um Arquivo em Hexadecimal
Dicas de Uso :
- Comparar o tamanho de dois arquivos
- Verificar se eles têm a mesma estrutura
Modo de Usar : ShowMessage(MD5String(‘C:\Program Files\Embarcadero\RAD Studio\7.0\bin\_refactoring.log’)); }
function MD5Arquivo(const Value: string): string;
var
xMD5: TIdHashMessageDigest5;
xArquivo: TFileStream;
begin
xMD5 := TIdHashMessageDigest5.Create;
xArquivo := TFileStream.Create(Value, fmOpenRead OR fmShareDenyWrite);
try
Result := xMD5.HashStreamAsHex(xArquivo);
finally
xArquivo.Free;
xMD5.Free;
end;
end;
end.
Fico por aqui e na próxima Quick Tips, onde veremos como trabalharmos com logins
Um abraço
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo