Svp, je veux que chaque étudiant utilise le même login et mot de passe de son compte moodle pour accéder un autre système lié a la base de donnée de moodle. Mais j'ai remarqué que les mots de passe sur la BD sont cryptés. Comment faire pour réussir la vérification du mot de passe introduite dans le système avec celle dans la base de donnée de Moodle qui est déjà crypté. Merci d'avance.
Bonjour,
Vous pouvez directement connecter votre "autre système" à la base de données de Moodle et encrypté le mot de passe fourni par l'utilisateur pour le comparer à celui de Moodle, de mémoire, il doit s'agir d'un cryptage SHA-1 avec une clé de salage. Une autre solution serait d'utiliser un système d'authentification par base de données externe pour Moodle comme expliqué ici : https://docs.moodle.org/3x/fr/Authentification_par_base_de_donn%c3%a9es_externe.
Erwan
Pouvez-vous me donnez svp la méthode de cryptage de moodle pour que je puisse crypter le mdp entré dans mon système. Merci d'avance.
Bonjour,
Il est normal de ne pas trouvé la même chaîne par le hash. Comme expliqué dans cette page ( https://docs.moodle.org/33/en/Password_salting ),
le salage se fait maintenant de façon unique pour chaque mot de passe.
Le paramètre $CFG->passwordsaltmain n'est plus utile, sous certaines conditions (cf lien)
Après, vous pouvez vous aider du code Moodle pour valider le mot de passe, c'est-à-dire vérifier que le mot de passe est valide, et non pas décrypter le mot de passe ou retrouver le même hash.
Les fonctions de traitement du mot de passe sont dans {$WEBROOT}/lib/moodlelib.php
La fonction validate_internal_user_password() devrait être un bon début
Bruno