Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

sábado, 20 de abril de 2013

DELPHI - Get Hash File (MD5) - Identificador Unico de Arquivo

Reações: 


// Uses IdHashMessageDigest, idHash; // Hash
  function GetHashFile (const sFile : String) : string;
  var
    idMD5 : IdHashMessageDigest.TIdHashMessageDigest5;
    FStrmBL : TFileStream;
  begin
    idMD5 := TIdHashMessageDigest5.Create;
    try
      FStrmBL := TFileStream.Create(sFile, fmOpenRead or fmShareDenyWrite);
      result := TIdHash(idMD5).HashStreamAsHex(FStrmBL);
    finally
      FreeAndNil(idMD5);
      FStrmBL.Free;
    end;
  end;
////////////// EM DELPHI 2006 - Testado em 01/07/2014
function GetHashFile(const sFile: String): string;
var
  idMD5 : IdHashMessageDigest.TIdHashMessageDigest5;
  FStrmBL : TFileStream;
  hash : T4x4LongWordRecord;
begin
  idMD5 := TIdHashMessageDigest5.Create;
  try
    FStrmBL := TFileStream.Create(sFile, fmOpenRead or fmShareDenyWrite);
    FStrmBL.Seek(0,0);
    hash := idMD5.HashValue(FStrmBL);
    result := IntToHex(Integer(hash[0]), 4) +
              IntToHex(Integer(hash[1]), 4) +
              IntToHex(Integer(hash[2]), 4) +
              IntToHex(Integer(hash[3]), 4);
  finally
    FreeAndNil(idMD5);
    FStrmBL.Free;
  end;
end; 

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer