Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

@systemix/passphrase

npm

@systemix/passphrase is a secure and memorable passphrase generator for JavaScript and TypeScript. It creates human-readable passphrases by combining randomly selected words, offering a secure alternative to complex random character passwords.

Features

  • Secure Randomness: Uses Node.js crypto with bias-free selection.
  • Formatting Options: Supports TitleCase, UPPERCASE, and standard capitalization.
  • Extra Security: Inject random numbers into words and use randomized separators.
  • Entropy Calculation: Built-in utility to calculate technical passphrase entropy.
  • Zero Dependencies: Purely built with Node.js built-ins.
  • Memorable: Generates easy-to-remember multi-word phrases.

Installation

pnpm add @systemix/passphrase

or

npm install @systemix/passphrase

From GitHub Packages (add to .npmrc: @shahadathhs:registry=https://npm.pkg.github.com):

pnpm add @shahadathhs/passphrase

Use @shahadathhs/passphrase in imports.

Usage

Simple Example

import { generatePassphrase } from '@systemix/passphrase';

const passphrase = generatePassphrase();
console.log(passphrase); // Example: "apple orange banana kiwi"

Advanced Formatting

const passphrase = generatePassphrase({
  wordCount: 4,
  useTitleCase: true,
  includeNumber: true,
  randomSeparator: true,
});

console.log(passphrase); // Example: "7Security.Meta_Flow9/Logic"

Entropy Calculation

import { calculatePassphraseEntropy } from '@systemix/passphrase';

const entropy = calculatePassphraseEntropy(4, 7776); // wordCount, listSize
console.log(`Entropy: ${entropy} bits`);

API Reference

generatePassphrase(props?: PassphraseProps): string

Property Type Default Description
wordCount number 4 Number of words (1 to 100).
separator string " " Separator between words.
wordList string[] Built-in Custom list of words.
useTitleCase boolean false Convert words to TitleCase.
useUpperCase boolean false Convert words to UPPERCASE.
includeNumber boolean false Inject a random digit into words.
randomSeparator boolean false Randomize separator between words.

calculatePassphraseEntropy(wordCount: number, wordListSize: number): number

Calculates the theoretical entropy of a passphrase (H = L * log2(N)).

License

MIT © shahadathhs