Skip to content

Commit

Permalink
Merge pull request #13 from olssonm/dev
Browse files Browse the repository at this point in the history
Update for #12
  • Loading branch information
olssonm authored Jun 20, 2019
2 parents f1b74e0 + 341a596 commit 2e0534b
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 18 deletions.
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

A simple implementation of zxcvbn for Laravel 5. This package allows you to access "zxcvbn-related" data on a passphrase in the application and also to use zxcvbn as a standard validator.

Uses [Zxcvbn-PHP](https://github.com/bjeavons/zxcvbn-php) by [@bjeavons](https://github.com/bjeavons), which in turn is inspired by [zxcvbn](https://github.com/dropbox/zxcvbn) by [@dropbox](https://github.com/dropbox).
Uses [Zxcvbn-PHP](https://github.com/mkopinsky/zxcvbn-php) by [@mkopinsky](https://github.com/mkopinsky) (originally by [@bjeavons](https://github.com/bjeavons)), which in turn is inspired by [zxcvbn](https://github.com/dropbox/zxcvbn) by [@dropbox](https://github.com/dropbox).

## Install

Expand Down Expand Up @@ -54,17 +54,19 @@ class MyClass extends MyOtherClass
$zxcvbn = Zxcvbn::passwordStrength('password');
dd($zxcvbn);

// array:6 [▼
// "crack_time" => 5.0E-5
// "calc_time" => 0.12961101531982
// "password" => "password"
// "entropy" => 0.0
// "match_sequence" => array:1 []
// "score" => 0
// array:9 [
// "password" => "password"
// "guesses" => 3
// "guesses_log10" => 0.47712125471966
// "sequence" => array:1 []
// "crack_times_seconds" => array:4 []
// "crack_times_display" => array:4 []
// "score" => 0
// "feedback" => array:2 []
// "calc_time" => 0.042769908905029
// ]
}
}
?>
```

Play around with different passwords and phrases, the results may surprise you. Check out [Zxcvbn-PHP](https://github.com/bjeavons/zxcvbn-php) for more uses and examples.
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"require": {
"php" : ">=7.1.3",
"illuminate/support": "^5.8",
"bjeavons/zxcvbn-php": "0.4.0"
"mkopinsky/zxcvbn-php": "^4.4"
},
"require-dev": {
"phpunit/phpunit" : "~7.0",
Expand Down
6 changes: 3 additions & 3 deletions src/ZxcvbnServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ public function boot()
$zxcvbn = new ZxcvbnPhp();
$zxcvbn = $zxcvbn->passwordStrength($value, [$username, $email]);

if (isset($zxcvbn['match_sequence'][0])) {
$dictionary = $zxcvbn['match_sequence'][0];
if (isset($zxcvbn['sequence'][0])) {
$dictionary = $zxcvbn['sequence'][0];
if (isset($dictionary->dictionaryName)) {
return false;
}
Expand All @@ -74,7 +74,7 @@ public function boot()
*/
public function register()
{
$this->app->bind('zxcvbn', function($app) {
$this->app->bind('zxcvbn', function() {
return new ZxcvbnPhp();
});
}
Expand Down
16 changes: 11 additions & 5 deletions tests/ZxcvbnTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,17 @@ protected function getPackageAliases($app)
*/
public function test_zxcvbn_basics()
{
$zxcvbn = Zxcvbn::passwordStrength('password');

$testVar1 = Zxcvbn::passwordStrength('test');

// Check keys
$this->assertArrayHasKey('score', $testVar1);
$this->assertArrayHasKey('match_sequence', $testVar1);
$this->assertArrayHasKey('entropy', $testVar1);
$this->assertArrayHasKey('password', $testVar1);
$this->assertArrayHasKey('sequence', $testVar1);
$this->assertArrayHasKey('crack_times_seconds', $testVar1);
$this->assertArrayHasKey('crack_times_display', $testVar1);
$this->assertArrayHasKey('calc_time', $testVar1);
$this->assertArrayHasKey('crack_time', $testVar1);
$this->assertArrayHasKey('guesses', $testVar1);

// Check score-value
$this->assertEquals(0, $testVar1['score']);
Expand All @@ -57,7 +59,7 @@ public function test_zxcvbn_basics()
$testVar4 = Zxcvbn::passwordStrength('7E6k9axB*gwGHa&aZTohmD9Wr&NVs[b4'); //<-- 32

// Check score-value
$this->assertEquals(1, $testVar2['score']);
$this->assertEquals(2, $testVar2['score']);
$this->assertEquals(4, $testVar3['score']);
$this->assertEquals(4, $testVar4['score']);
}
Expand Down Expand Up @@ -106,6 +108,7 @@ public function test_password_dictionary_with_message()
$this->assertEquals('Just a message', $this->validate_with_message_dictionary('test', '[email protected]', 'test', 'Just a message'));
}

/** @note validation helper */
private function validate_without_message_min($password, $min)
{
$data = ['password' => $password];
Expand All @@ -116,6 +119,7 @@ private function validate_without_message_min($password, $min)
return $validator->passes();
}

/** @note validation helper */
private function validate_with_message_min($password, $min, $message)
{
$data = ['password' => $password];
Expand All @@ -129,6 +133,7 @@ private function validate_with_message_min($password, $min, $message)
return $errors->first('password');
}

/** @note validation helper */
private function validate_without_message_dictionary($password, $email, $username)
{
$data = ['password' => $password];
Expand All @@ -139,6 +144,7 @@ private function validate_without_message_dictionary($password, $email, $usernam
return $validator->passes();
}

/** @note validation helper */
private function validate_with_message_dictionary($password, $email, $username, $message)
{
$data = ['password' => $password];
Expand Down

0 comments on commit 2e0534b

Please sign in to comment.