@untitledq/password-utilities
v1.1.1
Published
Small JavaScript library that provides password utility functions.
Maintainers
Readme
@untitled/password-utilities
A small JavaScript utility library for generating and validating passwords.
Table of Contents
Overview
This package currently exposes two password utilities:
generateStrongPassword(length): generates a random strong password string from uppercase letters, lowercase letters, digits, and special characters.isStrongPassword(password): checks whether a password meets the implemented strength rules.
Implemented strength rules:
- at least 8 characters long
- contains at least one uppercase letter
- contains at least one lowercase letter
- contains at least one digit
- contains at least one special character from
!@#$%^&*()_+
generateStrongPassword() keeps generating passwords until the result satisfies all of the strength rules above.
Installation
Install dependencies for local development:
npm installIf you want to use the package as a dependency:
npm install @untitledq/password-utilitiesUsage
Example:
const {
generateStrongPassword,
isStrongPassword,
} = require("@untitledq/password-utilities");
const password = generateStrongPassword(16);
console.log(password);
console.log(isStrongPassword(password));
// trueExample with invalid length:
const { generateStrongPassword } = require("@untitledq/password-utilities");
generateStrongPassword(6);
// throws Error: Password length must be at least 8 characters.API
generateStrongPassword(length = 12)
Generates a random password string with the requested length.
Behavior:
- default length is
12 - uses uppercase letters, lowercase letters, digits, and special characters
- returns a string with exactly the requested length
- always returns a password that passes
isStrongPassword() - throws an error if
lengthis less than8
Example:
const { generateStrongPassword } = require("@untitledq/password-utilities");
const password = generateStrongPassword(20);
console.log(password);isStrongPassword(password)
Checks whether a password matches the library's strength criteria.
Returns true only if the password:
- has at least 8 characters
- contains at least one uppercase letter
- contains at least one lowercase letter
- contains at least one digit
- contains at least one special character from
!@#$%^&*()_+
Example:
const { isStrongPassword } = require("@untitledq/password-utilities");
isStrongPassword("Abcdef1!");
// true
isStrongPassword("password");
// falseDevelopment
Run the test suite with:
npm testCurrent tests cover:
- generating a password with the requested length
- validating a generated password with the strength checker
License
This project is licensed under the MIT License.
