Verification du mot de passe crypté

Verification du mot de passe crypté

par Mouna Denden,
Nombre de réponses : 3

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.

Moyenne des évaluations  -
En réponse à Mouna Denden

Re: Verification du mot de passe crypté

par Erwan Gallenne,
Avatar Développeurs de plugins

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

En réponse à Erwan Gallenne

Re: Verification du mot de passe crypté

par Mouna Denden,
Merci pour votre réponse. Mais je crois que la nouvelle méthode de cryptage c'est MD5 hash avec une clé de salage et non pas SHA-1. J'ai déjà essayé de fixer la clé de salage en moodle dans le fichier config.php en utilisant: $CFG->passwordsaltmain = 'xxxxxxxxxx';

 

Puis, j'ai ajouté le scirpt suivant dans le fichier login.php. Mais, lors du test j'ai pas trouvé les même resultats.
<?php $options = array('salt' => 'xxxxxxxxxx'); $hash = password_hash("Moodle111*", PASSWORD_BCRYPT, $options); echo $hash; ?>

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.
En réponse à Mouna Denden

Re: Verification du mot de passe crypté

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

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

Moyenne des évaluations Utile (1)