dumb-passwords
Version:
Guard your users from security problems that start by having dumb passwords
96 lines (63 loc) • 3.1 kB
Markdown
[](https://coveralls.io/github/kn9ts/dumb-passwords?branch=feature%2Ftests)

> #### Guard your users from security problems such as being hacked that start by having dumb passwords
### Introduction
`dumb-passwords` is an NPM module that can be used to verify **the user provided password is
not one of the top 10,000 worst passwords** as analysed by a respectable IT security analyst. Read
about all [ here](https://xato.net/10-000-top-passwords-6d6380716fe0#.473dkcjfm),
[here(wired)](http://www.wired.com/2013/12/web-semantics-the-ten-thousand-worst-passwords/) or
[here(telegram)](http://www.telegraph.co.uk/technology/internet-security/10303159/Most-common-and-hackable-passwords-on-the-internet.html)
### Getting Started
#### Installation
```bash
$ npm install dumb-passwords --save
```
#### Usage
Short example:
```js
const dumbPasswords = require('dumb-passwords');
const isDumb = dumbPasswords.check('123456'); // true
// or use:
// const isDumb = dumbPasswords.checkPassword('123456');
```
Embedding it into your [**EXPRESS**](http://expressjs.com/en/4x/api.html#app.post.method) application:
```js
'use strict';
const app = require('express')();
const dumbPasswords = require('dumb-passwords');
...
app.post('/user/create', (req, res) => {
const userPassword = req.body.userPassword;
if (dumbPasswords.check(userPassword)) {
const rate = dumbPasswords.rateOfUsage(userPassword);
let message = 'Dear user, that\'s a dumb password!';
message += ' Why? For every 100,000 user accounts on the internet, ';
message += rate.frequency + ' are "protected" using that same password.';
message += ' Hacker\'s paradise.';
// DO NOT send this back to your user, it's only for demo purposes
res.status(200).send(message);
} else {
// that password is awesome!
// that user SMART! Give them the key to success!
}
});
...
app.listen(8080, () => {
console.log('Express server listening on on port 8080');
});
// expose app
module.exports = app;
```
## API
#### dumbPasswords.check(string) => true or false
Check if the string provided, representing the user's proposed submitted password is not one of the
**top 10,000 worst passwords** users use.
returns `true` if the password is one of them and `false` if the password is not.
#### dumbPasswords.rateOfUsage(string) => {password, frequency}
Checks and returns the recorded usage frequency of the related password per 100,000 user passwords.
```js
dumbPasswords.rateOfUsage('superman') // { password: 'superman', frequency: 2523 }
```
### License
##### [MIT](https://mit-license.org/) © [Eugene Mutai](https://github.com/kn9ts) | [Kevin Gathuku](https://github.com/kevgathuku) | [Jeremy Kithome](https://github.com/andela-jkithome)
*__DISCLAIMER:__* _All opinions aired in this repo are ours and do not reflect any company or organisation any contributor is involved with._