|
- 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 non-displayable 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: 32-bit hash result
- HA_MURMUR_2: Murmur algorithm version 2: 32-bit hash result
- HA_MURMUR_2_64A: Murmur algorithm version 2: 64-bit hash result optimized for 64-bit processors
- HA_MURMUR_2_64B: Murmur algorithm version 2: 64-bit hash result optimized for 32-bit processors
- HA_MURMUR_2_A: Incremental Murmur algorithm version 2: 32-bit hash result
- HA_MURMUR_2_BIG_ENDIAN: Murmur algorithm version 2 for big-endian machine: 32-bit hash result
- HA_MURMUR_2_ALIGNE: Murmur algorithm version 2 for aligned machine: 32-bit hash result
- HA_MURMUR_3_32: Murmur algorithm version 3: 32-bit hash result
- HA_MURMUR_3_128_X86: Murmur algorithm version 3: 128-bit hash result optimized for 32-bit processors
- HA_MURMUR_3_128_X64: Murmur algorithm version 3: 128-bit hash result optimized for 64-bit processors
| RIPEMD family | - HA_RIPEMD_128
- HA_RIPEMD_160
| SHA family | - HA_SHA_160 (also called SHA-1)
- HA_SHA_256 (FIPS PUB 198 specifications)
- HA_SHA_256_DOUBLE
- HA_SHA_384
- HA_SHA_512
| SHA-3 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 64-bit mode (but can also be used in 32-bit mode).
- CKSUM algorithms: hash functions with no cryptographic property, should be used to perform low-level checks or with hashing tables.
- 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.
- 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 non-displayable 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: 32-bit hash result
- HA_MURMUR_2: Murmur algorithm version 2: 32-bit hash result
- HA_MURMUR_2_64A: Murmur algorithm version 2: 64-bit hash result optimized for 64-bit processors
- HA_MURMUR_2_64B: Murmur algorithm version 2: 64-bit hash result optimized for 32-bit processors
- HA_MURMUR_2_A: Incremental Murmur algorithm version 2: 32-bit hash result
- HA_MURMUR_2_BIG_ENDIAN: Murmur algorithm version 2 for big-endian machine: 32-bit hash result
- HA_MURMUR_2_ALIGNE: Murmur algorithm version 2 for aligned machine: 32-bit hash result
- HA_MURMUR_3_32: Murmur algorithm version 3: 32-bit hash result
- HA_MURMUR_3_128_X86: Murmur algorithm version 3: 128-bit hash result optimized for 32-bit processors
- HA_MURMUR_3_128_X64: Murmur algorithm version 3: 128-bit hash result optimized for 64-bit 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
| SHA-3 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 64-bit mode (but can also be used in 32-bit 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 non-displayable 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.
- Cross-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).
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…
|
|
|
|
|
|
|