PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Notes
  • Fonction HashChaîne et UNICODE
  • Disponibilité des algorithmes
Produits
WinDevWebDev - Code ServeurWebDev - Code NavigateurWinDev MobileEtats et Requêtes
Plateformes
WindowsLinuxWindows MobileUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple Watch
Langages
JavaPHPAjaxCode Utilisateur (MCU)Langage Externe
Bases de données
HFSQLHFSQL Client/ServeurProcédures stockéesOLE DBODBCAccès Natifs

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

Versions 15 et supérieures
PHP Cette fonction est désormais disponible pour les sites PHP.
Java Cette fonction est désormais disponible pour les applications Java.
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
PHP Cette fonction est désormais disponible pour les sites PHP.
Java Cette fonction est désormais disponible pour les applications Java.
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
PHP Cette fonction est désormais disponible pour les sites PHP.
Java Cette fonction est désormais disponible pour les applications Java.
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.

Versions 18 et supérieures
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
Nouveauté 18
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
Versions 21 et supérieures
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WinDevWinDev MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
// Calcul du Hash des valeurs de deux champs de saisie
Hash1 est un Buffer = HashChaîne(HA_MD5_128, SAI_Saisie1)
Hash2 est un Buffer = HashChaîne(HA_MD5_128, SAI_Saisie2)
// Comparaison des deux Hash
SI Hash1 = Hash2 ALORS Info("Les deux chaînes sont identiques.")

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

Attention : ce résultat peut contenir des caractères non affichables. Si ce résultat doit être affiché, il peut être converti avec la fonction BufferVersHexa.

<Type d'algorithme> : Constante de type Entier
Indique le type d'algorithme utilisé lors du hachage de la chaîne <Chaîne> :
Famille MD5HA_MD5_128
Famille SHAHA_SHA_160 (aussi appelé SHA-1)
HA_SHA_256 (spécifications FIPS PUB 198)
HA_SHA_384
HA_SHA_512
Famille RIPEMDHA_RIPEMD_128
AndroidWidget AndroidJava Non disponible.
HA_RIPEMD_160
AndroidWidget AndroidJava Non disponible.
Famille TIGERHA_TIGER_128
AndroidWidget AndroidJavaPHP Non disponible.
HA_TIGER_160
AndroidWidget AndroidJavaPHP Non disponible.
HA_TIGER_192
AndroidWidget AndroidJavaPHP Non disponible.
Famille WHIRLPOOLHA_WHIRLPOOL
AndroidWidget AndroidJava Non disponible.
Famille CKSUMHA_CKSUM_8
AndroidWidget AndroidJava Non disponible.
HA_CKSUM_16
AndroidWidget AndroidJava Non disponible.
HA_CKSUM_32
AndroidWidget AndroidJava Non disponible.
HA_CKSUM_64
AndroidWidget AndroidJava Non disponible.

  • Algorithmes 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).
    PHP Les algorithmes TIGER ne sont pas disponibles.
  • 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.
<Chaîne> : Chaîne de caractères (entre guillemets)
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) 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 utilisé lors du hachage de la chaîne <Chaîne> :
Famille MD5HA_HMAC_MD5_128
Famille SHAHA_HMAC_SHA_160
HA_HMAC_SHA_256
HA_HMAC_SHA_384
HA_HMAC_SHA_512
Famille RIPEMDHA_HMAC_RIPEMD_128
AndroidWidget AndroidJava Non disponible.
HA_HMAC_RIPEMD_160
AndroidWidget AndroidJava Non disponible.
Famille TIGERHA_HMAC_TIGER_128
AndroidWidget AndroidJavaPHP Non disponible.
HA_HMAC_TIGER_160
AndroidWidget AndroidJavaPHP Non disponible.
HA_HMAC_TIGER_192
AndroidWidget AndroidJavaPHP Non disponible.
Famille WHIRLPOOLHA_HMAC_WHIRLPOOL
AndroidWidget AndroidJava Non disponible.

  • Algorithmes 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).
    PHP Les algorithmes TIGER ne sont pas disponibles.
<Chaîne> : Chaîne de caractères (entre guillemets)
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 (entre guillemets)
Clé d'authentification du message.

AndroidWidget AndroidJava Ce paramètre ne doit pas être une chaîne vide.

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 multi-plateforme : 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).

Disponibilité des algorithmes

PHP
  • Les algorithmes disponibles dépendent de la configuration du serveur PHP.
  • Les algorithmes TIGER ne sont pas disponibles.
AndroidWidget AndroidJava Seuls les algorithmes suivants sont supportés :
  • 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.

Liste des exemples associés :
Les fonctions de Hashage 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
- ...

Composantes
WinDevWebDev - Code ServeurEtats et Requêtes wd210com.dll
Windows Mobile wp210com.dll
Java wd210java.jar
Linux wd210com.so
Android wd210android.jar
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire