A função/método abaixo dá um exemplo de como implementar MD5:

Inclua na seção "USES" a unit "IdHashMessageDigest"
//uses
//IdHashMessageDigest;



function MD5(const texto:string):string;
var
  idmd5 : TIdHashMessageDigest5;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  try
    result := idmd5.HashStringAsHex(texto);
  finally
    idmd5.Free;
  end;
end;


Para criptografar um arquivo inteiro use a função abaixo.

function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;

  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
  try
    result := idmd5.HashStreamAsHex(fs);
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

para usar a função basta chama-la passando o caminho completo do arquivo que queremos criptografar, ela
retornará o hash desse arquivo.


Contato:joaopaulo_jpo@hotmail.com