UNPKG

password-strength-score

Version:
85 lines (62 loc) 3.84 kB
## password-strength-score [![npm](https://img.shields.io/npm/l/hooked-react-stopwatch.svg)](https://www.npmjs.com/package/password-strength-score) [![npm](https://img.shields.io/bundlephobia/min/use-open-window)](https://www.npmjs.com/package/password-strength-score) [![Coverage Status](https://coveralls.io/repos/github/bartlomiejzuber/password-strength-score/badge.svg)](https://coveralls.io/github/bartlomiejzuber/password-strength-score) [![Build Status](https://travis-ci.org/bartlomiejzuber/password-strength-score.svg?branch=master)](https://travis-ci.org/bartlomiejzuber/password-strength-score) [![License](https://img.shields.io/npm/v/password-strength-score.svg)](https://github.com/bartlomiejzuber/password-strength-score/blob/master/LICENSE) <p align="center"> <img src="https://raw.githubusercontent.com/bartlomiejzuber/password-strength-score/master/assets/icon2.png" alt="hook icon"/> </p> Smallish password strength utility. ## Installation ```sh npm i password-strength-score --save ``` Alternatively you may use `yarn`: ```sh yarn add password-strength-score ``` Link to npm: [https://www.npmjs.com/package/password-strength-score](https://www.npmjs.com/package/password-strength-score) ## Usage Basic ```javascript 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 ```javascript 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 }; ``` ### Score calculation (default settings) | 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 | #### Options | 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 | ## Reliability This package is fully tested with total coverage set to [![Coverage Status](https://coveralls.io/repos/github/bartlomiejzuber/password-strength-score/badge.svg)](https://coveralls.io/github/bartlomiejzuber/use-open-window). If you found any issue please report it [here](https://github.com/bartlomiejzuber/password-strength-score/issues/new). ## License Made with :sparkling_heart: by [Bartlomiej Zuber (bartlomiej.zuber@outlook.com)](mailto:bartlomiej.zuber@outlook.com) while traveling around the world, and licensed under the [MIT License](LICENSE)