// Calculate the Hash of values for two edit controlsHash1 is Buffer = HashString(HA_MD5_128, EDT_Edit1)Hash2 is Buffer = HashString(HA_MD5_128, EDT_Edit2)// Compare the two Hash IF Hash1 = Hash2 THEN Info("The two strings are identical.")

TIGER/WHIRLPOOL algorithms: hash functions with high cryptographic properties optimized for the 64-bit mode (but can also be used in 32-bit mode). The TIGER algorithms are not available.

CKSUM algorithms: hash functions with no cryptographic property, should be used to perform low-level checks or with hashing tables.

Versions 22 and laterDJB2 algorithm (Bernstein): hash functions reserved to strings and with no cryptographic property, should be used to perform low-level checks or with hashing tables. Few risks to get an identical hash.

New in version 22DJB2 algorithm (Bernstein): hash functions reserved to strings and with no cryptographic property, should be used to perform low-level checks or with hashing tables. Few risks to get an identical hash.

DJB2 algorithm (Bernstein): hash functions reserved to strings and with no cryptographic property, should be used to perform low-level checks or with hashing tables. Few risks to get an identical hash.

Versions 24 and laterMURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

New in version 24MURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

MURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

<String>: Character string (with quotes)

String on which the calculation will be performed. This parameter can contain binary characters.

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 non-displayable characters.

<Type of algorithm>: Integer constant

Indicates the type of algorithm (HMAC or MURMUR) used to hash the <String> string:

TIGER/WHIRLPOOL algorithms: hash functions with high cryptographic properties optimized for the 64-bit mode (but can also be used in 32-bit mode). The TIGER algorithms are not available.

Versions 24 and laterMURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

New in version 24MURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

MURMUR algorithm (Multiply Rotate): very fast hashing functions. This algorithm is used by the "bloom filter" of bitcoin wallets.

<String>: Character string (with quotes)

String on which the calculation will be performed. This parameter can contain binary characters.

<Secret key>: Character string (between quotes) or Integer

Authentication key of message.

If an HMAC algorithm is used, this parameter must be a string.

Versions 24 and laterIf a MURMUR algorithm is used, the key must be an integer.

New in version 24If a MURMUR algorithm is used, the key must be an integer.

If a MURMUR algorithm is used, the key must be an integer.

This parameter must not be an empty string.

Remarks

Notes

Two identical character strings will have, for the same type of algorithm, two identical Hashes.

The result of the Hash may contain non-displayable characters. These characters will not be visible when using Info or Trace for example.

HashString function 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.

Multi-platform 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).

Availability of algorithms

The available algorithms depend on the configuration of PHP server.

The TIGER algorithms are not available.The SHA-3 algorithms are not available.

Only the following algorithms are supported :

HA_MD5_128

HA_SHA_160, HA_SHA_256, HA_SHA_384, HA_SHA_512

HA_HMAC_MD5_128

HA_HMAC_SHA_160, HA_HMAC_SHA_256, HA_HMAC_SHA_384, HA_SHA_HMAC_512.

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 - ...