|
|
|
|
- Notes
- Fonction HashChaîne et UNICODE
- Disponibilité des algorithmes
HashChaîne (Fonction) En anglais : HashString Calcule le Hash d'une chaîne de caractères d'après un algorithme défini. Il est possible de calculer : - un hash simple.
- un hash avec authentification de message.
- un hash obtenu par un algorithme de dérivation de clé qui prend en paramètre un sel (PBKDF2).
Non disponible.
Rappel : Le hachage permet de réaliser un résumé condensé d'un fichier ou d'une chaîne de caractères. Ce résumé est appelé Hash. Attention : Le résultat peut contenir des caractères non affichables. Si vous souhaitez obtenir une chaîne de caractères contenant les représentations hexadécimales des octets, pour une utilisation dans des contextes tels qu'un affichage ou une API REST ou SOAP, vous pouvez utiliser la fonction BufferVersHexa avec la constante SansRegroupement sur le buffer résultat.
Syntaxe
Calculer un hash simple Masquer les détails
<Résultat> = HashChaîne(<Type d'algorithme> , <Chaîne>)
<Résultat> : Buffer Résultat du hachage de la chaîne <Chaîne> avec l'algorithme <Type d'algorithme>. <Type d'algorithme> : Constante de type Entier Indique le type d'algorithme utilisé lors du hachage de la chaîne <Chaîne> :
| | Famille DJB2 (Bernstein) | | Famille MD4 | HA_MD4 | Famille MD5 | HA_MD5_128 Attention : ce type d'algorithme est actuellement déprécié. | Famille MURMUR | - HA_MURMUR_1 : Algorithme Murmur version 1 : hash résultat sur 32 bits
- HA_MURMUR_2 : Algorithme Murmur version 2 : hash résultat sur 32 bits
- HA_MURMUR_2_64A : Algorithme Murmur version 2 : hash résultat sur 64 bits optimisé pour processeurs 64 bits
- HA_MURMUR_2_64B : Algorithme Murmur version 2 : hash résultat sur 64 bits optimisé pour processeurs 32 bits
- HA_MURMUR_2_A : Algorithme Murmur version 2 incrémentiel : hash résultat sur 32 bits
- HA_MURMUR_2_BIG_ENDIAN : Algorithme Murmur version 2 pour machine big-endian: hash résultat sur 32 bits
- HA_MURMUR_2_ALIGNE : Algorithme Murmur version 2 pour machine alignée : hash résultat sur 32 bits
- HA_MURMUR_3_32 : Algorithme Murmur version 3 : hash résultat sur 32 bits
- HA_MURMUR_3_128_X86 : Algorithme Murmur version 3 : hash résultat sur 128 bits optimisé pour processeur 32 bits
- HA_MURMUR_3_128_X64 : Algorithme Murmur version 3 : hash résultat sur 128 bits optimisé pour processeur 64 bits
| Famille RIPEMD | - HA_RIPEMD_128
- HA_RIPEMD_160
| Famille SHA | - HA_SHA_160 (aussi appelé SHA-1)
- HA_SHA_256 (spécifications FIPS PUB 198)
- HA_SHA_256_DOUBLE
- HA_SHA_384
- HA_SHA_512
| Famille SHA-3 | - HA_SHA3_224
- HA_SHA3_256
- HA_SHA3_384
- HA_SHA3_512
| Famille TIGER | - HA_TIGER_128
- HA_TIGER_160
- HA_TIGER_192
| Famille WHIRLPOOL | HA_WHIRLPOOL | Famille CKSUM | - HA_CKSUM_8
- HA_CKSUM_16
- HA_CKSUM_32
- HA_CKSUM_64
|
- Algorithmes MD4 / MD5 / SHA / RIPEMD : fonctions de hachage cryptographiques classiques.
- Algorithmes TIGER / WHIRLPOOL : fonctions de hachage ayant de très bonnes propriétés cryptographiques optimisées pour le 64 bits (mais leur utilisation est possible en 32 bits).
- Algorithmes CKSUM : fonctions de hachage ne possédant pas de propriété cryptographique, à n'utiliser que pour des contrôles minimaux ou des tables de hachage.
- Algorithme DJB2 (Bernstein) : fonctions de hachage réservées aux chaînes et ne possédant pas de propriété cryptographique, à n'utiliser que pour des contrôles minimaux ou des tables de hachage. Peu de risques d'obtenir un hash identique.
- Algorithme MURMUR : fonctions de hachage très rapides et ne possédant pas de propriétés cryptographiques. C'est l'algorithme utilisé pour le "bloom filter" des portefeuilles bitcoin.
<Chaîne> : Chaîne de caractères Chaîne sur laquelle sera effectuée le calcul. Ce paramètre peut contenir des caractères binaires.
Calculer un hash avec authentification de message (algorithme HMAC/algorithme MURMUR) Masquer les détails
<Résultat> = HashChaîne(<Type d'algorithme> , <Chaîne> , <Clé secrète>)
<Résultat> : Buffer Résultat du hachage de la chaîne <Chaîne> avec l'algorithme <Type d'algorithme>. La longueur de cette chaîne dépend de l'algorithme utilisé. Par exemple, si la constante HA_HMAC_SHA_256 est utilisé, le résultat contiendra 32 octets.Attention : ce résultat peut contenir des caractères non affichables. <Type d'algorithme> : Constante de type Entier Indique le type d'algorithme (HMAC ou MURMUR) utilisé lors du hachage de la chaîne <Chaîne> :
| | Famille MD4 | HA_HMAC_MD4
| Famille MD5 | HA_HMAC_MD5_128 Attention : ce type d'algorithme est actuellement déprécié. | Famille MURMUR | - HA_MURMUR_1 : Algorithme Murmur version 1 : hash résultat sur 32 bits
- HA_MURMUR_2 : Algorithme Murmur version 2 : hash résultat sur 32 bits
- HA_MURMUR_2_64A : Algorithme Murmur version 2 : hash résultat sur 64 bits optimisé pour processeurs 64 bits
- HA_MURMUR_2_64B : Algorithme Murmur version 2 : hash résultat sur 64 bits optimisé pour processeurs 32 bits
- HA_MURMUR_2_A : Algorithme Murmur version 2 incrémentiel : hash résultat sur 32 bits
- HA_MURMUR_2_BIG_ENDIAN : Algorithme Murmur version 2 pour machine big-endian: hash résultat sur 32 bits
- HA_MURMUR_2_ALIGNE : Algorithme Murmur version 2 pour machine alignée : hash résultat sur 32 bits
- HA_MURMUR_3_32 : Algorithme Murmur version 3 : hash résultat sur 32 bits
- HA_MURMUR_3_128_X86 : Algorithme Murmur version 3 : hash résultat sur 128 bits optimisé pour processeur 32 bits
- HA_MURMUR_3_128_X64 : Algorithme Murmur version 3 : hash résultat sur 128 bits optimisé pour processeur 64 bits
| Famille RIPEMD | - HA_HMAC_RIPEMD_128
- HA_HMAC_RIPEMD_160
| Famille SHA | - HA_HMAC_SHA_160
- HA_HMAC_SHA_256
- HA_HMAC_SHA_256_DOUBLE
- HA_HMAC_SHA_384
- HA_HMAC_SHA_512
| Famille SHA-3 | - HA_HMAC_SHA3_224
- HA_HMAC_SHA3_256
- HA_HMAC_SHA3_384
- HA_HMAC_SHA3_512
| Famille TIGER | - HA_HMAC_TIGER_128
- HA_HMAC_TIGER_160
- HA_HMAC_TIGER_192
| Famille WHIRLPOOL | HA_HMAC_WHIRLPOOL |
- Algorithmes MD4 / MD5 / SHA / RIPEMD : fonctions de hachage cryptographiques classiques.
- Algorithmes TIGER / WHIRLPOOL : fonctions de hachage ayant de très bonnes propriétés cryptographiques optimisées pour le 64 bits (mais leur utilisation est possible en 32 bits).
- Algorithme MURMUR : fonctions de hachage très rapides et ne possédant pas de propriétés cryptographiques. C'est l'algorithme utilisé pour le "bloom filter" des portefeuilles bitcoin.
<Chaîne> : Chaîne de caractères Chaîne sur laquelle sera effectuée le calcul. Ce paramètre peut contenir des caractères binaires. <Clé secrète> : Chaîne de caractères ou Entier Clé d'authentification du message. - Si un algorithme HMAC est utilisé, ce paramètre doit être une chaîne.
- Si un algorithme MURMUR est utilisé, la clé doit être un entier.
Remarques Notes - Deux chaînes de caractères identiques auront, pour un même type d'algorithme, deux Hash identiques.
- Le résultat du Hash peut contenir des caractères non affichables. Ces caractères ne pourront pas être vus lors de l'utilisation par exemple des fonctions Info ou Trace.
Fonction HashChaîne et UNICODE - Attention : Les fonctions de Hachage agissent au niveau des octets des chaînes de caractères. Le résultat pour un même type d'algorithme sera donc différent en UNICODE et en ANSI.
- Développement multiplateforme : Pour utiliser des Hash de chaînes entre plusieurs plateformes (par exemple un hash généré en iOS et vérifié en Android ou sur Windows), il ne faut pas utiliser des chaînes Unicode. En effet, les chaînes Unicode n'ont pas le même format selon les plate-formes. Dans ce cas, il est conseillé d'utiliser des chaînes au format ANSI ou UTF 8 (et de convertir les chaînes Unicode si nécessaire).
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : Les fonctions de Hashage
[ + ] Utilisation des fonctions de hashage. Les fonctions HashFichier et HashChaîne permettent de calculer une clé de Hashage pour une chaîne ou pour un fichier. Cette clé de Hashage permet par exemple de : - Vérifier que le fichier est intègre suite à un transfert par exemple - Rechercher des doublons de fichiers - ...
|
Classification Métier / UI : Code métier Composante : wd290com.dll
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|