uses DCPsha256, function DigestToStr(Digest: array of byte): string; var i: Integer; begin Result := ''; for i := 0 to Length(Digest) - 1 do Result := Result + uppercase(IntToHex(Digest[i], 2)); end; function GetStringHash(Source: AnsiString): string; var Hash: TDCP_sha256; Digest: array[0..31] of byte; begin Hash := TDCP_sha256.Create(nil); Hash.Init; Hash.UpdateStr(Source); Hash.Final(Digest); Hash.Free; Result := DigestToStr(Digest); end;