DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions Hash
  • Disponibilité des algorithmes
  • Fonction HashVérifieChaîne et UNICODE
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Vérifie le Hash d'une chaîne de caractères pour un type d'algorithme défini. Il est possible de vérifier :
  • 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).
    WEBDEV - Code NavigateurAndroidWidget AndroidJavaPHP 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.
Exemple
WindowsLinuxUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadWidget IOSMac CatalystJavaPHP
// Vérification du mot de passe :
// - Mot de passe saisi dans le champ "SAI_SaisieMotDePasse"
// - Hash du mot de passe dans la rubrique "Utilisateur.HashMotDePasse"
SI HashVérifieChaîne(HA_MD5_128, SAI_SaisieMotDePasse, ...
Utilisateur.HashMotDePasse) = Vrai ALORS
Info("Mot de passe correct.")
// Suite du traitement
// ...
SINON
Erreur("Mot de passe erroné.")
// Reprise de la saisie
DonneFocusEtRetourUtilisateur(SAI_SaisieMotDePasse)
FIN
WEBDEV - Code Navigateur
sHash est une chaîne = "9F 04 F4 1A 84 85 14 16 20 50 E3 D6"
HashVérifieChaîne(HA_SHA_160, "abc", HexaVersBuffer(sHash), HashVérifieChaîne_Callback)
 
PROCÉDURE INTERNE HashVérifieChaîne_Callback(bRes booléen)
SI bRes = Faux ALORS Trace("Erreur lors de la vérification")
FIN
Syntaxe

Vérifier un hash simple Masquer les détails

<Résultat> = HashVérifieChaîne(<Type d'algorithme> , <Chaîne> , <Hash>)
<Résultat> : Booléen
  • Vrai si le résultat du hachage de la chaîne <Chaîne> par l'algorithme <Type d'algorithme> correspond au paramètre <Hash>,
  • Faux dans le cas contraire.
<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)
  • HA_DJB2_32
  • HA_DJB2_64
JavaPHP Les constantes de cette famille ne sont pas disponibles.
Famille MD4HA_MD4
Famille MD5HA_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
Java Les constantes de cette famille ne sont pas disponibles.
Famille RIPEMD
  • HA_RIPEMD_128
  • HA_RIPEMD_160
Java Les constantes de cette famille ne sont pas disponibles.
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
Java Les constantes de cette famille ne sont pas disponibles.
Famille WHIRLPOOLHA_WHIRLPOOL
Java Non disponible.
Famille CKSUM
  • HA_CKSUM_8
  • HA_CKSUM_16
  • HA_CKSUM_32
  • HA_CKSUM_64
Java Les constantes de cette famille ne sont pas disponibles.
  • 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 pour laquelle le Hash doit être vérifié.
<Hash> : Chaîne de caractères
Hash de la chaîne à contrôler. Ce Hash doit être le résultat de la fonction HashChaîne précédemment appelée pour la chaîne <Chaîne> sur l'algorithme <Type d'algorithme>.
WEBDEV - Code Navigateur

Vérifier un hash simple Masquer les détails

HashVérifieChaîne(<Type d'algorithme> , <Chaîne> , <Hash> , <Procédure WLangage>)
<Type d'algorithme> : Constante de type Entier
Indique le type d'algorithme utilisé lors du hachage de la chaîne <Chaîne> :
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

Remarques :
  • Ces algorithmes de hachage sont interdits sous Internet Explorer.
  • L'algorithme de hachage HA_SHA_160 est interdit sous Edge.
<Chaîne> : Chaîne de caractères
Chaîne pour laquelle le Hash doit être vérifié.
<Hash> : Chaîne de caractères
Hash de la chaîne à contrôler. Ce Hash doit être le résultat de la fonction HashChaîne précédemment appelée pour la chaîne <Chaîne> sur l'algorithme <Type d'algorithme>.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lors du hachage. Cette procédure permet d'obtenir le résultat du hachage. Pour plus de détails, consultez Procédure utilisée par la fonction HashVérifieChaîne.

Vérifier un hash avec authentification de message (algorithme HMAC/algorithme MURMUR) Masquer les détails

<Résultat> = HashVérifieChaîne(<Type d'algorithme> , <Chaîne> , <Hash> , <Clé secrète>)
<Résultat> : Booléen
  • Vrai si le résultat du hachage de la chaîne <Chaîne> par l'algorithme <Type d'algorithme> correspond au paramètre <Hash>,
  • Faux dans le cas contraire.
<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 MD4HA_HMAC_MD4

Famille MD5HA_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
Java Les constantes de cette famille ne sont pas disponibles.
Famille RIPEMD
  • HA_HMAC_RIPEMD_128
  • HA_HMAC_RIPEMD_160
Java Les constantes de cette famille ne sont pas disponibles.
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
Java Les constantes de cette famille ne sont pas disponibles.
Famille WHIRLPOOLHA_HMAC_WHIRLPOOL
Java Non disponible.
  • 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 pour laquelle le Hash doit être vérifié.
<Hash> : Chaîne de caractères
Hash de la chaîne à contrôler. Ce Hash doit être le résultat de la fonction HashChaîne précédemment appelée pour la chaîne <Chaîne> sur l'algorithme <Type d'algorithme>.
<Clé secrète> : Chaîne de caractères ou Entier
Clé d'authentification du message. Cette clé doit être identique à celle utilisée pour calculer le Hash.
AndroidWidget AndroidJava Ce paramètre ne doit pas être une chaîne vide.
WEBDEV - Code Navigateur

Vérifier un hash avec authentification de message (algorithme HMAC) Masquer les détails

HashVérifieChaîne(<Type d'algorithme> , <Chaîne> , <Hash> , <Clé secrète> , <Procédure WLangage>)
<Type d'algorithme> : Constante de type Entier
Indique le type d'algorithme (HMAC) utilisé lors du hachage de la chaîne <Chaîne> :
Famille SHA
  • HA_HMAC_SHA_160
  • HA_HMAC_SHA_256
  • HA_HMAC_SHA_384
  • HA_HMAC_SHA_512

Remarques :
  • Ces algorithmes de hachage sont interdits sous Internet Explorer.
  • Ces algorithmes de hachage sont interdits sous Edge.
<Chaîne> : Chaîne de caractères
Chaîne pour laquelle le Hash doit être vérifié.
<Hash> : Chaîne de caractères
Hash de la chaîne à contrôler. Ce Hash doit être le résultat de la fonction HashChaîne précédemment appelée pour la chaîne <Chaîne> sur l'algorithme <Type d'algorithme>.
<Clé secrète> : Chaîne de caractères ou Entier
Clé d'authentification du message. Cette clé doit être identique à celle utilisée pour calculer le Hash.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lors du hachage. Cette procédure permet d'obtenir le résultat du hachage. Pour plus de détails, consultez Procédure utilisée par la fonction HashVérifieChaîne.
WindowsLinuxUniversal Windows 10 AppiPhone/iPadWidget IOSMac Catalyst

Vérifier un hash obtenu via un algorithme de dérivation de clé qui prend en paramètre un sel (PBKDF2) Masquer les détails

HashVérifieChaîne(<Type d'algorithme> , <Chaîne> , <Hash> , <Sel> , <Itération> , <Longueur>)
<Type d'algorithme> : Constante de type Entier
Indique le type d'algorithme pseudo-aléatoire utilisé par PBKDF2 lors du hachage de la chaîne <Chaîne> :
Famille MD4HA_PBKDF2_HMAC_MD4
Famille MD5HA_PBKDF2_HMAC_MD5_128
Attention : ce type d'algorithme est actuellement déprécié.
Famille RIPEMD
  • HA_PBKDF2_HMAC_RIPEMD_128
  • HA_PBKDF2_HMAC_RIPEMD_160
Famille SHA
  • HA_PBKDF2_HMAC_SHA_160
  • HA_PBKDF2_HMAC_SHA_256
  • HA_PBKDF2_HMAC_SHA_256_DOUBLE
  • HA_PBKDF2_HMAC_SHA_384
  • HA_PBKDF2_HMAC_SHA_512
Famille SHA-3
  • HA_PBKDF2_HMAC_SHA3_224
  • HA_PBKDF2_HMAC_SHA3_256
  • HA_PBKDF2_HMAC_SHA3_384
  • HA_PBKDF2_HMAC_SHA3_512
Famille TIGER
  • HA_PBKDF2_HMAC_TIGER_128
  • HA_PBKDF2_HMAC_TIGER_160
  • HA_PBKDF2_HMAC_TIGER_192
Famille WHIRLPOOLHA_PBKDF2_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).
<Chaîne> : Chaîne de caractères
Chaîne pour laquelle le Hash doit être vérifié.
<Hash> : Chaîne de caractères
Hash de la chaîne à contrôler. Ce Hash doit être le résultat de la fonction HashChaîne précédemment appelée pour la chaîne <Chaîne> sur l'algorithme <Type d'algorithme>.
<Sel> : Chaîne de caractères
Sel cryptographique utilisé identique à celui utilisé pour calculer le Hash.
<Itération> : Entier
Nombre d'itérations de l'algorithme. Ce paramètre doit être identique à celui utilisé pour calculer le Hash.
<Longueur> : Entier
Longueur de la clé dérivée. Ce paramètre doit être identique à celui utilisé pour calculer le Hash.
Remarques
JavaPHP

Disponibilité des algorithmes

PHP Les algorithmes disponibles dépendent de la configuration du serveur PHP (présence de l'extension 'mhash', version 5 de PHP avec sa fonction native hash, etc).
Java Seuls les algorithmes suivants sont supportés :
  • HA_HMAC_MD5_128
  • HA_HMAC_SHA_160, HA_HMAC_SHA_256, HA_HMAC_SHA_384, HA_SHA_HMAC_512
  • HA_HMAC_SHA_256_DOUBLE
  • HA_MD4
  • HA_MD5_128
  • HA_SHA_160, HA_SHA_256, HA_SHA_384, HA_SHA_512
  • HA_SHA_256_DOUBLE

Fonction HashVérifieChaîne et UNICODE

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).
Classification Métier / UI : Code métier
Composante : wd290com.dll
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale