Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
better-wp-security
/
vendor-prod
/
bjeavons
/
zxcvbn-php
/
src
:
Feedback.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * @license MIT * * Modified using Strauss. * @see https://github.com/BrianHenryIE/strauss */ declare(strict_types=1); namespace iThemesSecurity\Strauss\ZxcvbnPhp; use iThemesSecurity\Strauss\ZxcvbnPhp\Matchers\MatchInterface; /** * Feedback - gives some user guidance based on the strength * of a password * * @see zxcvbn/src/feedback.coffee */ class Feedback { /** * @param int $score * @param MatchInterface[] $sequence * @return array */ public function getFeedback(int $score, array $sequence): array { // starting feedback if (count($sequence) === 0) { return [ 'warning' => '', 'suggestions' => [ "Use a few words, avoid common phrases", "No need for symbols, digits, or uppercase letters", ], ]; } // no feedback if score is good or great. if ($score > 2) { return [ 'warning' => '', 'suggestions' => [], ]; } // tie feedback to the longest match for longer sequences $longestMatch = $sequence[0]; foreach (array_slice($sequence, 1) as $match) { if (mb_strlen($match->token) > mb_strlen($longestMatch->token)) { $longestMatch = $match; } } $feedback = $longestMatch->getFeedback(count($sequence) === 1); $extraFeedback = 'Add another word or two. Uncommon words are better.'; array_unshift($feedback['suggestions'], $extraFeedback); return $feedback; } }