Skip to main content
Deno 2 is finally here 🎉️
Learn more

Password Checker

CI Quality Gate Status Bugs Reliability Rating Security Rating Maintainability Rating Vulnerabilities Lines of Code Ko-Fi

Deno🦕 module to test if a password/string fulfills all the preset criterias.

Installation

import { checkPassword } from "https://deno.land/x/password_checker/mod.ts";

or

import { checkPasswordWithResult } from "https://deno.land/x/password_checker/mod.ts";

Parameters

Mandatory Parameters:

  • password: string

Optional Parameters:

  • minLen: number - To check the password against a minimum length. Defaults to 0 which disables the check.
  • maxLen: number - To check the password against a maximum length. Defaults to 0 which disables the check.
  • containsNum: boolean - To check if the password contains any numbers. Defaults to true and enables the check.
  • containsSpecialChar: boolean - To check if the password contains any special characters. Defaults to true and enables the check.
  • containsAlphabet: boolean - To check if the password contains any alphabets. Defaults to true and enables the check.
  • checkWithCommonPasswords: boolean - To check if the password is one of the 10000 most common passwords. Need to use --allow-net to use this flag. Defaults to false and disables the check for faster processing.

Output

  • If checkPassword() is invoked:
    • Returns true if password passes all the checks, else false.
  • If checkPasswordWithResult() is invoked:
    • isValid: boolean - true if the password is valid and passes all the checks, else false.
    • reason: string - The reason why the input password was marked as invalid. Returns undefined in case isValid is true.`

Usage

import { checkPassword } from "https://deno.land/x/password_checker/mod.ts";

const passwordString: string = "randomPassword123!.";

let isPasswordValid: boolean;

// Default case which checks if password is alphanumeric and contains special characters
isPasswordValid = checkPassword({ password: passWordString });

// To set minimum length of password
isPasswordValid = checkPassword({ password: passwordString, minLen: 5 });

// To set maximum length of password
isPasswordValid = checkPassword({
  password: passwordString,
  minLen: 5,
  maxLen: 12,
});

// To disable number check on password
isPasswordValid = checkPassword({
  password: passwordString,
  containsNum: false,
});

// To disable alphanumeric check on password
isPasswordValid = checkPassword({
  password: passwordString,
  containsNum: false,
  containsAlphabet: false,
});

// To disable special characters check on password
isPasswordValid = checkPassword({
  password: passwordString,
  containsSpecialChar: false,
});

// To run a check against 10k common passwords
isPasswordValid = checkPassword({
  password: passwordString,
  containsSpecialChar: false,
  checkWithCommonPasswords: true,
});

If you want the reason of failure as well, you can use checkPasswordWithResult() which returns an object of type VerificationResult.

interface VerificationResult {
  isValid: boolean;
  reason?: string;
}

Reference

License

This package is published under the MIT license. For more information, see the accompanying LICENSE file.




PS:

If you find this package useful, please consider giving a star to this project on Github.

And, if you are willing to buy me a coffee, that would be awesome. :)

Buy Me a Coffee at ko-fi.com