Skip to content

mcrumley/php-complexify

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

php-complexify

PHP port of Dan Palmer's jquery.complexify.js

Installation

composer require mcrumley/php-complexify

Usage

$check = new \Complexify\Complexify();
$result = $check->evaluateSecurity('correct horse battery staple');

echo round($result->complexity, 1) . '% ';
if ($result->valid) {
    echo 'VALID';
} else {
    echo 'NOT VALID: '.implode(', ', $result->errors);
}

Configuration

You can override the default configuration by passing an array to the constructor.

$check = new \Complexify\Complexify(array(
    'minimumChars' => 8,          // the minimum acceptable password length
    'strengthScaleFactor' => 1,   // scale the required password strength (higher numbers require a more complex password)
    'bannedPasswords' => array(), // override the default banned password list
    'banMode' => 'strict',        // strict == don't allow substrings of banned passwords, loose == only ban exact matches
    'encoding' => 'UTF-8',        // password string encoding
));

Return value

The evaluateSecurity method returns an object containing the following properties:

  • valid - TRUE if the password passes all checks
  • complexity - The calculated complexity as a percent of the maximum (25 characters with at least one from each set)
  • errors - Zero or more strings explaining the checks that did not pass
    • banned
    • tooshort
    • toosimple

License

This code is distributed under the WTFPL v2 licence.

Version History

0.4 - Changed banmode option to banMode

0.3.1 - Added composer support

0.3 - First release (matched version number of the JS version)

About

PHP port of Dan Palmer's jquery.complexify.js

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages