function ps_haval(Data: string): string; extdecl; var HASH: TDCP_haval; Digest: array[0..31] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_haval.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 31 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_md4(Data: string): string; extdecl; var HASH: TDCP_md4; Digest: array[0..15] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_md4.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 15 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_md5(Data: string): string; extdecl; var HASH: TDCP_md5; Digest: array[0..15] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_md5.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 15 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_ripemd128(Data: string): string; extdecl; var HASH: TDCP_ripemd128; Digest: array[0..15] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_ripemd128.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 15 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_ripemd160(Data: string): string; extdecl; var HASH: TDCP_ripemd160; Digest: array[0..19] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_ripemd160.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 19 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_sha1(Data: string): string; extdecl; var HASH: TDCP_sha1; Digest: array[0..19] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_sha1.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 19 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_sha256(Data: string): string; extdecl; var HASH: TDCP_sha256; Digest: array[0..31] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_sha256.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 31 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_sha384(Data: string): string; extdecl; var HASH: TDCP_sha384; Digest: array[0..47] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_sha384.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 47 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_sha512(Data: string): string; extdecl; var HASH: TDCP_sha512; Digest: array[0..63] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_sha512.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 63 do Result := Result + IntToHex(Digest[I], 2); finally Hash.Free; end; end; function ps_tiger(Data: string): string; extdecl; var HASH: TDCP_tiger; Digest: array[0..23] of byte; I: integer; begin dcpFillChar(Digest, SizeOf(Digest), 0); Hash := TDCP_tiger.Create(nil); try Hash.Init; Hash.UpdateStr(Data); Hash.Final(Digest); Result := ''; for I := 0 to 23 do Result := Result + string(IntToHex(Digest[I], 2)); finally Hash.Free; end; end;