Annonce

Réduire
Aucune annonce.

Script PHP pour Calculer la solidité d'un mot de passe

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Script PHP pour Calculer la solidité d'un mot de passe

    Bonjour,

    Je suis en train de refaire ma zone de membre et de revoir tout l'aspect sécurité et malgré toutes les protections, le maillon le plus faible reste encore et toujours l'utilisateur...
    Partant de ce principe, il faut pouvoir calculer la "solidité" de mot de passe qu'il choisi, j'ai donc chercher et trouver ça :
    Code:
    <?php
    
    function testpassword($mdp)	{ // $mdp le mot de passe passé en paramètre
    
    // On récupère la longueur du mot de passe	
    $longueur = strlen($mdp);
    
    // On fait une boucle pour lire chaque lettre
    for($i = 0; $i < $longueur; $i++) 	{
    	
    	// On sélectionne une à une chaque lettre
    	// $i étant à 0 lors du premier passage de la boucle
    	$lettre = $mdp[$i];
    
    	if ($lettre>='a' && $lettre<='z'){
    		// On ajoute 1 point pour une minuscule
    		$point = $point + 1;
    
    		// On rajoute le bonus pour une minuscule
    		$point_min = 1;
    	}
    	else if ($lettre>='A' && $lettre <='Z'){
    		// On ajoute 2 points pour une majuscule
    		$point = $point + 2;
    		
    		// On rajoute le bonus pour une majuscule
    		$point_maj = 2;
    	}
    	else if ($lettre>='0' && $lettre<='9'){
    		// On ajoute 3 points pour un chiffre
    		$point = $point + 3;
    		
    		// On rajoute le bonus pour un chiffre
    		$point_chiffre = 3;
    	}
    	else {
    		// On ajoute 5 points pour un caractère autre
    		$point = $point + 5;
    		
    		// On rajoute le bonus pour un caractère autre
    		$point_caracteres = 5;
    	}
    }
    
    // Calcul du coefficient points/longueur
    $etape1 = $point / $longueur;
    
    // Calcul du coefficient de la diversité des types de caractères...
    $etape2 = $point_min + $point_maj + $point_chiffre + $point_caracteres;
    
    // Multiplication du coefficient de diversité avec celui de la longueur
    $resultat = $etape1 * $etape2;
    
    // Multiplication du résultat par la longueur de la chaîne
    $final = $resultat * $longueur;
    
    return $final;
    
    }
    source

    Après il y a les regex : if ( !ereg('^([^0-9]+|[^A-Z]+|[A-Za-z0-9]+|.{0,5}|.{13,})$' , $motDePasse) ) lien

    Et encore ça :
    Code:
    <?php
    function valide_motdepasse($chaine, $mode = 2){
        $minimum = array(1 => 4, 2 => 6, 3 => 8);
        $pourcentage = array(1 => 26, 2 => 51, 3 => 76);
        if(preg_match('#[a-z-0-9]{'.$minimum[$mode].',}#', $chaine)){
            $a_chaine = str_split($chaine);
            $c_uniques = array_unique($a_chaine);
            if(count($c_uniques)*100/count($a_chaine) >= $pourcentage[$mode]){
                return true;
            }
        }
        return false;
    }
    ?>
    source

    Je suis en train de faire beaucoup de recherches sur divers sujets, j'ai pas le temps d'améliorer ce post, désolé

    ( ps en cherchant je suis aussi tomber sur ça, j'était plié http://www.phpcs.com/codes/MOT-PASSE...PHP_42239.aspx vive la sécurité ^^" )
    "Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw
Chargement...
X