Skip to content

omgovich/omgopass

master
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?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

omgopass

npm Build Status Dependencies

A tiny memorable password generator

Why you should consider using omgopass in your project? The library's goal is to provide the fastest and the smallest (in terms of the bundle size) password generation solution. We have performed a bunch of benchmarks against popular password generation libraries, and omgopass currently beats them all.

Generate password online

Install

npm install omgopass --save

Usage

import generatePassword from "omgopass";
const password = generatePassword(); // "Tu6Log5Bam4"

By default omgopass returns a random memorable password with size in range 9 to 12 characters. To change password length you should config syllablesCount, minSyllableLength and maxSyllableLength options.

Advanced Usage

generatePassword({ hasNumbers: false }); // "MunBedKod"

generatePassword({ syllablesCount: 5 }); // "Rot2Ba5Vim1My8Red4"

generatePassword({ titlecased: false }); // "si5co3ve8"

generatePassword({
  syllablesCount: 4,
  minSyllableLength: 3,
  maxSyllableLength: 4,
  hasNumbers: false,
  titlecased: true,
  separators: "-_",
  vowels: "аеиоуэюя",
  consonants: "бвгджзклмнпрстчш"
}); // "Зер_Коти-Лов_Меч"

Recipe: Generate random passphrase

Looking for long passwords that are easy to remember but hard to guess? Try to generate random passphrase instead.

generatePassword({
  minSyllableLength: 4,
  maxSyllableLength: 6,
  hasNumbers: false,
  titlecased: false,
  separators: " "
}); // "goferu lipeba cyzex"

Available options

Name Description Default
syllablesCount Integer, count of syllables 3
minSyllableLength Integer, minimal length of a syllable 2
maxSyllableLength Integer, max length of a syllable 3
hasNumbers Boolean, put numbers in the password true
titlecased Boolean, use titlecase true
vowels String, vowel alphabet 'aeiouy'
consonants String, consonant alphabet 'bcdfghklmnprstvz'
separators String, symbols that separate syllables ''

Benchmark

name ops/sec size (bytes) memorable browser node
omgopass 1 430 233 322
password-generator 2 163 644
generate-password 696 006 740
randomatic 29 796 1 740
secure-random-password 7 622 8 939
niceware 327 805 195 584
xkpasswd 793 456 732 160

Benchmark results were generated on a MBP 2018, 2,3 GHz Intel Core i5. To perform these tests, execute npm run benchmark in the library folder.

Who uses omgopass

  • LogChimp — self-hosted platform for products makers to get feedback from their users
  • Laravel VPN Admin — Admin panel for VPN servers management
  • Password Pusher - application to securely communicate passwords over the web

Supporting IE11 and obsolete platforms

This library uses features like destructuring assignment and const/let declarations and doesn't ship with ES5 transpiled sources. If you aim to support browsers like IE11 and below → make sure you run Babel over your node_modules