Overview

Packages

  • Auth
  • Config
  • Controller
  • Date
  • Db
  • Feed
    • Abstract
    • Writers
  • File
    • Decorator
  • Form
    • Element
  • Image
  • Log
    • Writer
  • Net
    • Exception
  • None
  • PHP
  • PHPMailer
  • Session
  • Util
  • Validate
    • Validator
  • Zend
    • Registry

Classes

  • Auth_ACL
  • Auth_Auth
  • Auth_Bcrypt
  • Auth_Util
  • Auth_WithRole
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: 
  3: /**
  4:  * Pry Framework
  5:  *
  6:  * LICENSE
  7:  *
  8:  * This source file is subject to the new BSD license that is bundled
  9:  * with this package in the file LICENSE.txt.
 10:  * 
 11:  * @version $Revision: 276 $
 12:  */
 13: 
 14: /**
 15:  * Outils utiles pour la gestion d'authentification
 16:  * @category Pry
 17:  * @package Auth
 18:  * @version 1.0.0 
 19:  * @author Olivier ROGER <oroger.fr>
 20:  *       
 21:  *
 22:  */
 23: class Auth_Util
 24: {
 25: 
 26:     /**
 27:      * Calcul la complexité d'un mot de passe
 28:      * Basé sur système d'ajout et suppression de point :
 29:      *
 30:      * minuscule = +(longeur-nbMinuscule)*nbMinuscule
 31:      * majuscule = +((longeur-nbMajus)*nbMajus)+3
 32:      * chiffre   = +nbChiffre*4
 33:      * Autre     = +nbAutre*8
 34:      *
 35:      * Retrait de point :
 36:      *
 37:      * - nbMinusculeConsecutive*2
 38:      * - nbMajConsecutive*2
 39:      * - nbChiffreConsec*2
 40:      * - nbAutreCharConsec
 41:      * - nbCharIdentique*3
 42:      *
 43:      * On peut juger les mdp comme suit 0-33 : mauvais; 33-66 : moyen; 66-100 : bon; 100+ : Excellent
 44:      *
 45:      * @param string $pass Mot de passe
 46:      * @return int
 47:      */
 48:     public static function passwordComplexity($pass)
 49:     {
 50: 
 51:         $longeur            = mb_strlen($pass);
 52:         $numMin             = 0;
 53:         $numMaj             = 0;
 54:         $numChiffre         = 0;
 55:         $numOther           = 0;
 56:         $consecMinLetter    = 0;
 57:         $consecMajLetter    = 0;
 58:         $consecNum          = 0;
 59:         $consecChar         = 0;
 60:         $sameChar           = 0;
 61: 
 62:         if ($longeur > 2)
 63:         {
 64:             for ($i = 0; $i < $longeur; $i++) {
 65:                 if ($pass[$i] >= 'a' && $pass[$i] <= 'z')
 66:                 {
 67:                     $numMin++;
 68:                     if ($i > 0 && ($pass[$i - 1] >= 'a' && $pass[$i - 1] <= 'z'))
 69:                         $consecMinLetter++;
 70:                 }
 71:                 elseif ($pass[$i] >= 'A' && $pass[$i] <= 'Z')
 72:                 {
 73:                     $numMaj++;
 74:                     if ($i > 0 && ($pass[$i - 1] >= 'A' && $pass[$i - 1] <= 'Z'))
 75:                         $consecMajLetter++;
 76:                 }
 77:                 elseif ($pass[$i] >= 0 && $pass[$i] <= 9)
 78:                 {
 79:                     $numChiffre++;
 80:                     if ($i > 0 && ($pass[$i - 1] >= 0 && $pass[$i - 1] <= 9))
 81:                         $consecNum++;
 82:                 }
 83:                 else
 84:                 {
 85:                     $numOther++;
 86:                     if ($i > 0 && !preg_match('/^([a-zA-Z0-9]+)$/', $pass[$i - 1]))
 87:                         $consecChar++;
 88:                 }
 89: 
 90:                 if ($i > 0 && $pass[$i] == $pass[$i - 1])
 91:                     $sameChar++;
 92:             }
 93:             $positiveScore = ($longeur * 2) + (($longeur - $numMin) * $numMin) + ((($longeur - $numMaj) * $numMaj) + 3) +
 94:                     ($numChiffre * 4) + ($numOther * 8);
 95:             $score = $positiveScore - (($consecMinLetter * 2) + ($consecMajLetter * 2) + ($consecNum * 2) + $consecChar +
 96:                     ($sameChar * 3));
 97:             return $score;
 98:         }
 99:         else
100:         {
101:             return 0;
102:         }
103:     }
104: }
105: 
106: ?>
Pry Framework API documentation generated by ApiGen 2.6.1