Smallish password strength utility, 0️⃣ external dependencies. Self code only.
npm i password-strength-score --save
Alternatively you may use yarn
:
yarn add password-strength-score
Link to npm: https://www.npmjs.com/package/password-strength-score
Basic
import { passwordStrength } from 'password-strength-score';
passwordStrength('pass'); // returns 1 because password has only lowercase chars
passwordStrength('pass1'); // returns 2 because password has lowercase chars and a number
Strength meter component utility
import { passwordStrength, PasswordStrength } from 'password-strength-score';
import chroma from 'chroma-js';
const getPasswordScoreGradientColor = (password) => {
const score = passwordStrength(password);
chroma
.scale(['#FF4047','#00FF6E'])
.mode('rgb')
.colors(PasswordStrength.MaxScore); // generate colors array between #FF4047 - #00FF6E
return colors[score]; // Returns one color between #FF4047 - #00FF6E
};
Flag | Test | Points |
---|---|---|
isLong | password.length > 6 | 1 |
isVeryLong | password.length > 12 | 1 |
hasUppercase | /[a-z]/ | 1 |
hasLowercase | /[A-Z]/ | 1 |
hasNumbers | /\d/ | 1 |
hasNonalphas | /\W/ | 1 |
Option | Description | Default |
---|---|---|
isLong | Length for password to be consider as long | 6 |
isVeryLong | Length for password to be consider as very long | 12 |
withoutUppercase | Turn off score point for uppercase char occurrence | false |
withoutLowercase | Turn off score point for lowercase char occurrence | false |
withoutNumbers | Turn off score point for numbers occurrence | false |
withoutNonalphanumerics | Turn off score point for alphanumerics char occurrence | false |
This package is fully tested with total coverage set to . If you found any issue please report it here.
Made with 💖 by Bartlomiej Zuber (bartlomiej.zuber@outlook.com) while traveling around the world, and licensed under the MIT License