
 Notes
 HashString and UNICODE
 Availability of algorithms
HashString (Function) In french: HashChaîne Syntax
Calculating a simple hash Hide the details
<Result> = HashString(<Type of algorithm> , <String>)
<Result>: Buffer Result of <String> hashing with the <Type of algorithm> algorithm.Caution: this result may contain nondisplayable characters. If this result must be displayed, it can be converted by BufferToHexa. <Type of algorithm>: Integer constant Indicates the type of algorithm used when hashing the <String>:
  DJB2 family (Bernstein)   MD4 family  HA_MD4  MD5 family  HA_MD5_128 Caution: this type of algorithm is currently deprecated.  MURMUR family   HA_MURMUR_1: Murmur algorithm version 1: 32bit hash result
 HA_MURMUR_2: Murmur algorithm version 2: 32bit hash result
 HA_MURMUR_2_64A: Murmur algorithm version 2: 64bit hash result optimized for 64bit processors
 HA_MURMUR_2_64B: Murmur algorithm version 2: 64bit hash result optimized for 32bit processors
 HA_MURMUR_2_A: Incremental Murmur algorithm version 2: 32bit hash result
 HA_MURMUR_2_BIG_ENDIAN: Murmur algorithm version 2 for bigendian machine: 32bit hash result
 HA_MURMUR_2_ALIGNE: Murmur algorithm version 2 for aligned machine: 32bit hash result
 HA_MURMUR_3_32: Murmur algorithm version 3: 32bit hash result
 HA_MURMUR_3_128_X86: Murmur algorithm version 3: 128bit hash result optimized for 32bit processors
 HA_MURMUR_3_128_X64: Murmur algorithm version 3: 128bit hash result optimized for 64bit processors
 RIPEMD family   HA_RIPEMD_128
 HA_RIPEMD_160
 SHA family   HA_SHA_160 (also called SHA1)
 HA_SHA_256 (FIPS PUB 198 specifications)
 HA_SHA_256_DOUBLE
 HA_SHA_384
 HA_SHA_512
 SHA3 family   HA_SHA3_224
 HA_SHA3_256
 HA_SHA3_384
 HA_SHA3_512
 TIGER family   HA_TIGER_128
 HA_TIGER_160
 HA_TIGER_192
 WHIRLPOOL family  HA_WHIRLPOOL  CKSUM family   HA_CKSUM_8
 HA_CKSUM_16
 HA_CKSUM_32
 HA_CKSUM_64

 MD4 / MD5 / SHA / RIPEMD algorithms: standard cryptographic hash functions.
 TIGER/WHIRLPOOL algorithms: hash functions with high cryptographic properties optimized for the 64bit mode (but can also be used in 32bit mode).
 CKSUM algorithms: hash functions with no cryptographic property, should be used to perform lowlevel checks or with hashing tables.
 DJB2 algorithm (Bernstein): hash functions reserved to strings and with no cryptographic property, should be used to perform lowlevel checks or with hashing tables. Few risks to get an identical hash.
 MURMUR algorithm: very fast hash functions with no cryptographic properties. This algorithm is used by the "bloom filter" of bitcoin wallets.
<String>: Character string String on which the calculation will be performed. This parameter can contain binary characters.
Calculating a hash with message authentication (HMAC/MURMUR algorithm) Hide the details
<Result> = HashString(<Type of algorithm> , <String> , <Secret key>)
<Result>: Buffer Result of <String> hashing with the <Type of algorithm> algorithm. The length of this string depends on the algorithm used. For example, if the HA_HMAC_SHA_256 constant is used, the result will contain 32 bytes.Caution: this result may contain nondisplayable characters. <Type of algorithm>: Integer constant Indicates the type of algorithm (HMAC or MURMUR) used to hash the <String>:
  MD4 family  HA_HMAC_MD4
 MD5 family  HA_HMAC_MD5_128 Caution: this type of algorithm is currently deprecated.  MURMUR family   HA_MURMUR_1: Murmur algorithm version 1: 32bit hash result
 HA_MURMUR_2: Murmur algorithm version 2: 32bit hash result
 HA_MURMUR_2_64A: Murmur algorithm version 2: 64bit hash result optimized for 64bit processors
 HA_MURMUR_2_64B: Murmur algorithm version 2: 64bit hash result optimized for 32bit processors
 HA_MURMUR_2_A: Incremental Murmur algorithm version 2: 32bit hash result
 HA_MURMUR_2_BIG_ENDIAN: Murmur algorithm version 2 for bigendian machine: 32bit hash result
 HA_MURMUR_2_ALIGNE: Murmur algorithm version 2 for aligned machine: 32bit hash result
 HA_MURMUR_3_32: Murmur algorithm version 3: 32bit hash result
 HA_MURMUR_3_128_X86: Murmur algorithm version 3: 128bit hash result optimized for 32bit processors
 HA_MURMUR_3_128_X64: Murmur algorithm version 3: 128bit hash result optimized for 64bit processors
 RIPEMD family   HA_HMAC_RIPEMD_128
 HA_HMAC_RIPEMD_160
 SHA family   HA_HMAC_SHA_160
 HA_HMAC_SHA_256
 HA_HMAC_SHA_256_DOUBLE
 HA_HMAC_SHA_384
 HA_HMAC_SHA_512
 SHA3 family   HA_HMAC_SHA3_224
 HA_HMAC_SHA3_256
 HA_HMAC_SHA3_384
 HA_HMAC_SHA3_512
 TIGER family   HA_HMAC_TIGER_128
 HA_HMAC_TIGER_160
 HA_HMAC_TIGER_192
 WHIRLPOOL family  HA_HMAC_WHIRLPOOL 
 MD4 / MD5 / SHA / RIPEMD algorithms: standard cryptographic hash functions.
 TIGER/WHIRLPOOL algorithms: hash functions with high cryptographic properties optimized for the 64bit mode (but can also be used in 32bit mode).
 MURMUR algorithm: very fast hash functions with no cryptographic properties. This algorithm is used by the "bloom filter" of bitcoin wallets.
<String>: Character string String on which the calculation will be performed. This parameter can contain binary characters. <Secret key>: Character string or Integer Authentication key of message.  If an HMAC algorithm is used, this parameter must be a string.
 If a MURMUR algorithm is used, the key must be an integer.
Remarks Notes  Two identical character strings will have, for the same type of algorithm, two identical Hashes.
 The result of the Hash may contain nondisplayable characters. These characters will not be visible when using Info or Trace for example.
HashString and UNICODE  Caution: The Hash functions operate on the bytes found in the character strings. For the same type of algorithm, the result will differ in UNICODE and in ANSI.
 Crossplatform development: To use Hash of strings between several platforms (a hash generated in iOS and checked in Android or Windows for example), no Unicode string must be used. Indeed, the Unicode strings do not have the same format according to the platforms. In this case, we advise you to use strings in ANSI or UTF 8 format (and to convert the Unicode strings if necessary).
Related Examples:

Unit examples (WINDEV): The Hash functions
[ + ] Using the hashing functions. The HashFile and HashString functions are used to calculate a Hash key for a string or for a file. This Hash key is used to:  Check whether the file is consistent after a transfer for example  Find file duplicates  ...

Business / UI classification: Business Logic
This page is also available for…






