Popularity
5.3
Growing
Activity
5.6
-
573
25
68

Description

Zxcvbn-PHP is a password strength estimator using pattern matching and minimum entropy calculation. Zxcvbn-PHP is based on the Javascript zxcvbn project from Dropbox and @lowe. "zxcvbn" is bad password, just like "qwerty" and "123456".

Code Quality Rank: L4
Monthly Downloads: 33,999
Programming language: PHP
License: MIT License
Tags: Passwords     Password     Zxcvbn    
Latest version: v1.1.0

Zxcvbn PHP alternatives and similar libraries

Based on the "Passwords" category

Do you think we are missing an alternative of Zxcvbn PHP or a related project?

Add another 'Passwords' Library

README

Zxcvbn-PHP is a password strength estimator using pattern matching and minimum entropy calculation. Zxcvbn-PHP is based on the the Javascript zxcvbn project from Dropbox and @lowe. "zxcvbn" is bad password, just like "qwerty" and "123456".

zxcvbn attempts to give sound password advice through pattern matching and conservative entropy calculations. It finds 10k common passwords, common American names and surnames, common English words, and common patterns like dates, repeats (aaa), sequences (abcd), and QWERTY patterns.

Build Status Coverage Status Latest Stable Version License

Installation

The library can be installed with Composer by adding it as a dependency to your composer.json file.

Via the command line run: composer require bjeavons/zxcvbn-php

Or in your composer.json add

{
    "require": {
        "bjeavons/zxcvbn-php": "^1.0"
    }
}

Then run composer update on the command line and include the autoloader in your PHP scripts so that the ZxcvbnPhp class is available.

require_once 'vendor/autoload.php';

Usage

use ZxcvbnPhp\Zxcvbn;

$userData = [
  'Marco',
  'marco@example.com'
];

$zxcvbn = new Zxcvbn();
$weak = $zxcvbn->passwordStrength('password', $userData);
echo $weak['score']; // will print 0

$strong = $zxcvbn->passwordStrength('correct horse battery staple');
echo $strong['score']; // will print 4

echo $weak['feedback']['warning']; // will print user-facing feedback on the password, set only when score <= 2
// $weak['feedback']['suggestions'] may contain user-facing suggestions to improve the score

Scores are integers from 0 to 4:

  • 0 means the password is extremely guessable (within 103 guesses), dictionary words like 'password' or 'mother' score a 0
  • 1 is still very guessable (guesses < 106), an extra character on a dictionary word can score a 1
  • 2 is somewhat guessable (guesses < 108), provides some protection from unthrottled online attacks
  • 3 is safely unguessable (guesses < 1010), offers moderate protection from offline slow-hash scenario
  • 4 is very unguessable (guesses >= 1010) and provides strong protection from offline slow-hash scenario

Acknowledgements

Thanks to:


*Note that all licence references and agreements mentioned in the Zxcvbn PHP README section above are relevant to that project's source code only.