Esempio n. 1
0
 /**
  * fonction qui permet d'encrypter un mot de passe, une fois encrype, on save les params pour le retrouver en bdd
  * @param string|null $mdp
  * @param $id_identite
  * @return string
  */
 public static function setEncryptMdp($mdp, $id_identite = null)
 {
     $encrypt_str = ChaineCaractere::random(154);
     //on cache le mdp
     $mdp = md5($mdp);
     //récupération de la logneur du mot de passe
     $longeur_mdp = strlen($mdp);
     //on va couper le mot de passe en 2 suivant un nombre aleatoire
     $nb_aleatoire_mdp = rand(3, $longeur_mdp - 2);
     $bout1_mdp = mb_substr($mdp, 0, $longeur_mdp / 2, "UTF-8");
     $bout2_mdp = mb_substr($mdp, $longeur_mdp / 2, $longeur_mdp, "UTF-8");
     //on stock la taille des bouts pour pouvoir les décrypter
     $taille_bout1 = strlen($bout1_mdp);
     $taille_bout2 = strlen($bout2_mdp);
     //on insere le premier bout aleatoirement dans le hashmdp
     //on calcul sa longeur total (celle duhash + la logneur du mdp que l'on va rajouter dedans)
     $longueur_hash = strlen($encrypt_str);
     $debut_bout1 = rand(0, $longueur_hash / 2);
     //on rajouter le premier bout dans le mot de passe + recalcule de la longeur du hash avec le mdp add
     $encrypt_str = mb_substr($encrypt_str, 0, $debut_bout1) . $bout1_mdp . mb_substr($encrypt_str, $debut_bout1, $longueur_hash);
     //on insere le second bout aleatoirement dans le hashmdp
     //on calcul sa longeur total (celle duhash + la logneur premier bout du mdp que l'on va rajouter dedans)
     $longueur_hash = strlen($encrypt_str);
     $debut_bout2 = rand($longueur_hash / 2, $longueur_hash);
     //on rajoute le deuxieme
     $mdp_encrypt = mb_substr($encrypt_str, 0, $debut_bout2) . $bout2_mdp . mb_substr($encrypt_str, $debut_bout2, $longueur_hash);
     if ($id_identite != null) {
         self::setSaveParams("{$taille_bout1}, {$debut_bout2}, {$nb_aleatoire_mdp}, {$taille_bout2}, {$debut_bout1}, " . ChaineCaractere::random(20), $id_identite);
     } else {
         self::$params = "{$taille_bout1}, {$debut_bout2}, {$nb_aleatoire_mdp}, {$taille_bout2}, {$debut_bout1}, " . ChaineCaractere::random(20);
     }
     return $mdp_encrypt;
 }
Esempio n. 2
0
 /**
  * fonction quir genere un mot de passe aleatoire pour le compte spécifié en param
  * @param $id_identite
  */
 public function setReinitialiserMdp($id_identite)
 {
     $dbc = \core\App::getDb();
     $this->getunUser($id_identite);
     if ($this->mail != "" || $this->mail != null) {
         $mdp = ChaineCaractere::random(6);
         $mdp_encode = Encrypt::setEncryptMdp($mdp, $id_identite);
         FlashMessage::setFlash("Mot de passe réinitialisé avec succès ! L'utilisateur à reçu un E-mail avec son nouveau mot de passe", "success");
         $dbc->update("mdp", $mdp_encode)->update("last_change_mdp", date("Y-m-d"))->from("identite")->where("ID_identite", "=", $id_identite)->set();
         $mail = new Mail();
         $mail->setEnvoyerMail("Réinitialisation de votre E-mail effectuée", "Votre mot de passe a été réinitialisé", $this->mail);
     } else {
         FlashMessage::setFlash("le mot de passe de {$this->pseudo} ne peu pas être réinitialisé car il ne possède pas d'E-mail");
         $this->erreur = true;
     }
 }