-// "Calculates" password strength
-function calculatePasswordStrength ($password, $configEntry = 'min_password_length') {
- // Default score
- $score = 1;
-
- if ((strlen($password) < 1) || (strlen($password) < getConfig($configEntry))) {
- // Is to weak
- return 0;
- } // END - if
-
- // At least 8 chars long?
- if (strlen($password) >= 8) {
- // Add score
- $score++;
- } // END - if
-
- // At least 10 chars long?
- if (strlen($password) >= 10) {
- // Add score
- $score++;
- } // END - if
-
- // Lower and upper cases?
- if ((preg_match('/[a-z]/', $password)) && (preg_match('/[A-Z]/', $password))) {
- // Add score
- $score++;
- } // END - if
-
- // Also numbers?
- if (preg_match('/[0-9]/', $password)) {
- // Add score
- $score++;
- } // END - if
-
- // Special characters?
- if (preg_match('/.[!,@,#,$,%,^,&,*,?,\/,_,~,+,-,(,)]/', $password)) {
- // Add score
- $score++;
- } // END - if
-
- // Return password score
- return $score;
-}
-
-// "Translates" password strength/score
-function translatePasswordStrength ($strength) {
- // Return it translated
- return '{--PASSWORD_SCORE_' . bigintval($strength) . '--}';
-}
-
-// Checks whether given password is strong enough
-function isStrongPassword ($password) {
- // Determine it
- return (calculatePasswordStrength($password) >= getConfig('min_password_score'));
-}
-