22,8 → 22,7 |
function GetTempDir: string; |
function GetSpecialFolder(const aCSIDL: Integer): string; |
function GetMyDocumentsFolder: string; |
function MD5(const str: string): string; |
function MD5Stream(const s: TStream): string; |
function md5(value: string): string; |
|
implementation |
|
329,50 → 328,17 |
Result := GetSpecialFolder(CSIDL_PERSONAL); |
end; |
|
|
{$IF gsIdVersion <> '10.1.5'} // Delphi 2007 built-in Indy10; gsIdVersion requires idGlobal.pas |
{$DEFINE NewIndy} |
{$IFEND} |
|
function MD5Stream(const s: TStream): string; |
function md5(value: string): string; |
var |
idmd5: TIdHashMessageDigest5; |
hashMessageDigest5 : TIdHashMessageDigest5; |
begin |
idmd5 := TIdHashMessageDigest5.Create; |
hashMessageDigest5 := nil; |
try |
{$IFDEF NewIndy} |
result := idmd5.HashStreamAsHex(s); |
{$ELSE} |
result := idmd5.AsHex(idmd5.HashValue(s)); |
{$ENDIF} |
hashMessageDigest5 := TIdHashMessageDigest5.Create; |
Result := IdGlobal.IndyLowerCase(hashMessageDigest5.HashStringAsHex(value)); |
finally |
idmd5.Free; |
hashMessageDigest5.Free; |
end; |
end; |
|
function MD5(const str: string): string; |
{$IFDEF NewIndy} |
var |
idmd5: TIdHashMessageDigest5; |
begin |
idmd5 := TIdHashMessageDigest5.Create; |
try |
result := idmd5.HashStringAsHex(str,IndyTextEncoding_OSDefault); |
finally |
idmd5.Free; |
end; |
{$ELSE} |
var |
ss: TStringStream; |
begin |
ss := TStringStream.Create(str); |
try |
result := MD5Stream(ss); |
finally |
ss.Free; |
end; |
{$ENDIF} |
end; |
|
|
end. |