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;