Verify password hash
Verify password hash ( motDePasse ; hash ) -> Résultat
Paramètre | Type | Description | |
---|---|---|---|
motDePasse | Text | → | Mot de passe utilisateur (seuls les 72 premiers caractères sont utilisés) |
hash | Text | → | Hash du mot de passe |
Résultat | Boolean | ← | Vrai si motDePasse et hash correspondent, Faux sinon |
Description
La fonction Verify password hash vérifie que l'empreinte cryptographique hash correspond bien au motDePasse.
Cette fonction compare motDePasse à un hash généré par la commande Generate password hash.
Gestion des erreurs
Les erreurs suivantes peuvent être retournées. Vous pouvez récupérer et analyser les erreurs à l'aide des commandes Last errors et ON ERR CALL.
Numéro | Message |
---|---|
850 | Password-hash: Algorithme inconnu |
851 | Password-hash: Echec lors des vérifications de cohérence |
Rappel : Seul l'algorithme bcrypt est pris en charge. Si votre hash n'as pas été généré à l'aide du bcrypt, une erreur est retournée.
Exemple
Cet exemple compare un hash de mot de passe créé par la commande Generate password hash et stocké dans la table [Users] avec un mot de passe qui vient d'être saisi :
var $password : Text
$password:=Request("Veuillez saisir votre mot de passe.")
If(Verify password hash($password;[Users]hash))
ALERT("Mot de passe correct")
Else
ALERT("Mot de passe invalide")
End if
Note : Le mot de passe n'est jamais stocké sur disque, seule son empreinte cryptographique est conservée. Lors de l'utilisation d'une application 4D distante, il est possible de générer le hash côté client. Si vous utilisez une application cliente JavaScript (ou similaire), les bonnes pratiques en matière de sécurité recommandent que le hash soit créé côté serveur. Bien entendu, dans ce cas par sécurité vous devez utiliser une connexion réseau cryptée avec TLS car le mot de passe est alors transféré par le réseau.