Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Coverage Status

Guard your users from security problems such as being hacked that start by having dumb passwords


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, here(wired) or here(telegram)

Getting Started


$ npm install dumb-passwords --save


Short example:

const dumbPasswords = require('dumb-passwords');

const isDumb = dumbPasswords.check('123456'); // true
// or use:
// const isDumb = dumbPasswords.checkPassword('123456');

Embedding it into your EXPRESS application:

'use strict';

const app = require('express')();
const dumbPasswords = require('dumb-passwords');

...'/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
  } 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;


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.

dumbPasswords.rateOfUsage('superman') // { password: 'superman', frequency: 2523 }


MIT © Eugene Mutai | Kevin Gathuku | Jeremy Kithome

DISCLAIMER: All opinions aired in this repo are ours and do not reflect any company or organisation any contributor is involved with.