Ported to use mkopinsky/zxcvbn-php and minor tweaks.

This commit is contained in:
Marcus Olsson 2019-06-20 14:27:17 +02:00
parent bd55b32fdd
commit fc3b58165b
No known key found for this signature in database
GPG Key ID: 32DDA1CBAABE46A7
3 changed files with 15 additions and 8 deletions

View File

@ -22,7 +22,7 @@
"require": { "require": {
"php" : ">=7.1.3", "php" : ">=7.1.3",
"illuminate/support": "^5.8", "illuminate/support": "^5.8",
"bjeavons/zxcvbn-php": "0.4.0" "mkopinsky/zxcvbn-php": "^4.4"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit" : "~7.0", "phpunit/phpunit" : "~7.0",

View File

@ -50,8 +50,8 @@ class ZxcvbnServiceProvider extends ServiceProvider
$zxcvbn = new ZxcvbnPhp(); $zxcvbn = new ZxcvbnPhp();
$zxcvbn = $zxcvbn->passwordStrength($value, [$username, $email]); $zxcvbn = $zxcvbn->passwordStrength($value, [$username, $email]);
if (isset($zxcvbn['match_sequence'][0])) { if (isset($zxcvbn['sequence'][0])) {
$dictionary = $zxcvbn['match_sequence'][0]; $dictionary = $zxcvbn['sequence'][0];
if (isset($dictionary->dictionaryName)) { if (isset($dictionary->dictionaryName)) {
return false; return false;
} }

View File

@ -38,15 +38,18 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
*/ */
public function test_zxcvbn_basics() public function test_zxcvbn_basics()
{ {
$zxcvbn = Zxcvbn::passwordStrength('password');
dd($zxcvbn);
$testVar1 = Zxcvbn::passwordStrength('test'); $testVar1 = Zxcvbn::passwordStrength('test');
// Check keys // Check keys
$this->assertArrayHasKey('score', $testVar1); $this->assertArrayHasKey('score', $testVar1);
$this->assertArrayHasKey('match_sequence', $testVar1); $this->assertArrayHasKey('sequence', $testVar1);
$this->assertArrayHasKey('entropy', $testVar1); $this->assertArrayHasKey('crack_times_seconds', $testVar1);
$this->assertArrayHasKey('password', $testVar1); $this->assertArrayHasKey('crack_times_display', $testVar1);
$this->assertArrayHasKey('calc_time', $testVar1); $this->assertArrayHasKey('calc_time', $testVar1);
$this->assertArrayHasKey('crack_time', $testVar1); $this->assertArrayHasKey('guesses', $testVar1);
// Check score-value // Check score-value
$this->assertEquals(0, $testVar1['score']); $this->assertEquals(0, $testVar1['score']);
@ -57,7 +60,7 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
$testVar4 = Zxcvbn::passwordStrength('7E6k9axB*gwGHa&aZTohmD9Wr&NVs[b4'); //<-- 32 $testVar4 = Zxcvbn::passwordStrength('7E6k9axB*gwGHa&aZTohmD9Wr&NVs[b4'); //<-- 32
// Check score-value // Check score-value
$this->assertEquals(1, $testVar2['score']); $this->assertEquals(2, $testVar2['score']);
$this->assertEquals(4, $testVar3['score']); $this->assertEquals(4, $testVar3['score']);
$this->assertEquals(4, $testVar4['score']); $this->assertEquals(4, $testVar4['score']);
} }
@ -106,6 +109,7 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
$this->assertEquals('Just a message', $this->validate_with_message_dictionary('test', 'test@test.com', 'test', 'Just a message')); $this->assertEquals('Just a message', $this->validate_with_message_dictionary('test', 'test@test.com', 'test', 'Just a message'));
} }
/** @note validation helper */
private function validate_without_message_min($password, $min) private function validate_without_message_min($password, $min)
{ {
$data = ['password' => $password]; $data = ['password' => $password];
@ -116,6 +120,7 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
return $validator->passes(); return $validator->passes();
} }
/** @note validation helper */
private function validate_with_message_min($password, $min, $message) private function validate_with_message_min($password, $min, $message)
{ {
$data = ['password' => $password]; $data = ['password' => $password];
@ -129,6 +134,7 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
return $errors->first('password'); return $errors->first('password');
} }
/** @note validation helper */
private function validate_without_message_dictionary($password, $email, $username) private function validate_without_message_dictionary($password, $email, $username)
{ {
$data = ['password' => $password]; $data = ['password' => $password];
@ -139,6 +145,7 @@ class ZxcvbnTest extends \Orchestra\Testbench\TestCase {
return $validator->passes(); return $validator->passes();
} }
/** @note validation helper */
private function validate_with_message_dictionary($password, $email, $username, $message) private function validate_with_message_dictionary($password, $email, $username, $message)
{ {
$data = ['password' => $password]; $data = ['password' => $password];