| 4D v18Generate digest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 Generate digest 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Generate digest ( param ; algorithme ) -> Résultat | ||||||||
| Paramètre | Type | Description | ||||||
| param | BLOB, Variable texte |   | Blob ou texte pour lequel obtenir une clé digest | |||||
| algorithme | Entier long |   | Algorithme utilisé pour retourner la clé : 0 = Digest MD5, 1 = Digest SHA1, 2 = Digest 4D, 3 = Digest SHA-256, 4 = Digest SHA-512 | |||||
| Résultat | Texte |   | Valeur de la clé digest | |||||
La commande Generate digest retourne la clé digest d’un BLOB ou d’un texte après application d’un algorithme de cryptage.
Passez dans le paramètre algorithme une valeur désignant la fonction de hachage à employer. Vous pouvez utiliser l’une des constantes suivantes, placées dans le thème Type digest :
| Constante | Type | Valeur | Comment | 
| 4D digest | Entier long | 2 | Algorithme interne utilisé par 4D pour crypter les mots de passe des utilisateurs. L'utilisation de cet algorithme est particulièrement utile dans le cadre de la On REST Authentication database method lorsque vous souhaitez exploiter votre propre liste d'utilisateurs. | 
| MD5 digest | Entier long | 0 | Algorithme Message Digest 5. Séquence de 128 bits retournée en tant que chaîne de 32 caractères hexadécimaux. | 
| SHA1 digest | Entier long | 1 | Algorithme Secure Hash 1. Séquence de 160 bits retournée en tant que chaîne de 40 caractères hexadécimaux. | 
| SHA256 digest | Entier long | 3 | Famille SHA-2. Séquence de 256 bits retournée en tant que chaîne de 64 caractères hexadécimaux. | 
| SHA512 digest | Entier long | 4 | Famille SHA-2. Séquence de 512 bits retournée en tant que chaîne de 128 caractères hexadécimaux. | 
Note : Il est fortement déconseillé d'utiliser les algorithmes MD5 ou SHA pour gérer les mots de passe ; si vous souhaitez vérifier des mots de passe, nous recommandons l'utilisation des commandes Generate password hash et Verify password hash.
La valeur retournée pour un même objet sera identique sur toutes les plates-formes (macOS/Windows). Le calcul est effectué à partir de la représentation en UTF8 du texte passé en paramètre.
Note : Si vous utilisez la commande avec un texte/BLOB vide, elle ne retournera pas void mais une chaîne (par exemple "d41d8cd98f00b204e9800998ecf8427e" pour le MD5.
Cet exemple vous permet de comparer deux images à l’aide de l’algorithme MD5 :
 C_PICTURE($vPict1;$vPict2)
 C_BLOB($FirstBlob;$SecondBlob)
 READ PICTURE FILE("c:\\myPhotos\\photo1.png")
 If(OK=1)
    READ PICTURE FILE("c:\\myPhotos\\photo2.png")
    If(OK=1)
       PICTURE TO BLOB($vPict1;$FirstBlob;".png")
       PICTURE TO BLOB($vPict2;$SecondBlob;".png")
 
       $MD5_1:=Generate digest($FirstBlob;MD5 digest)
       $MD5_2:=Generate digest($SecondBlob;MD5 digest)
 
       If($MD5_1#$MD5_2)
          ALERT("Ces deux images sont différentes.")
       Else
          ALERT("Ces deux images sont identiques.")
       End if
    End if
 End ifCes exemples illustrent comment récupérer la clé digest d’un texte :
 $key1:=Generate digest("The quick brown fox jumps over the lazy dog.";MD5 digest)
  // $key1 vaut "e4d909c290d0fb1ca068ffaddf22cbd0"
 $key2:=Generate digest("The quick brown fox jumps over the lazy dog.";SHA1 digest)
  // $key2 vaut "408d94384216f890ff7a0c3528e8bed1e0b01621"Cet exemple n’accepte que l’utilisateur "admin" avec le mot de passe "123" ne correspondant pas à un utilisateur 4D :
     //Méthode base sur authentification REST
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
     //$1 : utilisateur
     //$2 : mot de passe
     //$3 : mode digest
 If($1="admin")
       If($3)
          $0:=($2=Generate digest("123";4D digest))
       Else
          $0:=($2="123")
       End if
 Else
       $0:=False
 End if
									Generate password hash
									
									Protocole sécurisé
									
									WEB Validate digest
									
	Produit :  4D
	Thème :  Outils
	Numéro :  
        1147
        
        
        
	
	Créé :  4D v13
	Modifié :  4D v14
	Modifié :  4D v16 R5
	
	
	4D - Langage ( 4D v18)
	
	
	
 Ajouter un commentaire
Ajouter un commentaire