절름발이 프로그래머/Delphi

델파이에서 MD5 해시 사용하기

훅크선장 2009. 11. 9. 14:51
http://delphi.about.com/od/objectpascalide/a/delphi-md5-hash.htm
를 참조했습니다.

uses IdHashMessageDigest, idHash;

//returns MD5 has for a file
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.AsHex(idmd5.HashValue(fs)) ;
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

2009 버전 이상에서는, 함수가 변경되어서, 다음과 같이 
//returns MD5 has for a file
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;
로 쓰면 됩니다.