Socket
Socket
Sign inDemoInstall

generate-passphrase-id

Package Overview
Dependencies
0
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    generate-passphrase-id

Zero dependency module - Secure random passphrase in Indonesian language


Version published
Maintainers
1
Created

Readme

Source

Generate Passphrase

npm npm npm bundle size Codecov GitHub branch checks state GitHub

✨Zero dependency module for generating passphrase.

An Indonesian language fork of (also my repository) generate-passphrase.

  • 🚀 Simple passphrase generator with simple config
  • ✨ ESM support
  • 🔑 Cryptographically secure
  • 📕 Built-in Typescript typings
  • 🎊 Supports Node.js 10 and higher

The code is close to node generate-password repo. But this is for a passphrase, with Indonesian language.

ProtonMail has a decent article explaining about password vs passphrase.

Is this secure? Yes. I don't use Math.floor, I used the crypto module.

Why is this repo heavy? I'm using scraped words list from KBBI for fetching the Indonesian word list. If you have a better idea/workaround for this, feel free to open up an issue and file a PR! I'll gladly accept any feedbacks.

Installation

$ npm install generate-passphrase-id
# or
$ yarn add generate-passphrase-id
# or basically any package manager you like.

How to use this?

import { generate, generateMultiple } from 'generate-passphrase-id'
// or
const { generate, generateMultiple } = require('generate-passphrase-id')

const passphrase = generate();
// 'spionase-syahwat-41-neolitikum'
const anotherPassphrase = generate({ length: 3, separator: '.', titlecase: true }) 
// see available options below

const multiplePassphrase = generateMultiple(3)
// ['pomologi-jerojol-kalau-senandika', 'kakek-meristem-89-emigras', ... ]
const anotherMultiplePassphrase = generateMultiple(10, { length: 2, uppercase: true, numbers: false })

I know some of us need to generate it fast just for the sake of it, you can add fast as a parameter. (It defaults to false). Please bear in mind, this would make the returning random passphrase not cryptographically secure

const fast = generate({ fast: true })
// cultivars-strigose-avisements-58

const extraFast = generateMultiple(5, { fast: true })
// ['extrorsal-169-resultlessness-168', 'postmodern-kolkhozniki-skulkers-99', ... ]

Options

KeyTypeDefault
lengthinteger4
separatorstring'-'
numbersbooleantrue
uppercasebooleanfalse
titlecasebooleanfalse
patternstringnull

A few things to note:

  • Uppercase is more prioritized than titlecase. So if you have both options set to true, it will be words full of uppercase.
  • Pattern option is more prioritized than length, because you've set the passphrase pattern, hence the module is using the length from your pattern.

Benchmark a.k.a How slow is this?

TL;DR: It's slow.

I'm using:

  • Asus ROG GL553VE
  • Windows 10 Home 64-bit (10.0 Build 18363)
  • Intel Core i7-7700HQ @ 2.80GHz, 8 CPUs
  • 16 GB RAM

Benchmark for single passphrase/password:

ModuleOps/secAccuracyRuns sampled
generate-passphrase-id107,649±1.89%407
generate-passphrase (fast enabled)503,082±1.26%438
generate-password401,664±1.33%335
niceware268,618±1.95%319
randomatic7,870±3.16%307

Benchmark for multiple passphrase/password (generateMultiple function):

ModuleOps/secAccuracyRuns sampled
generate-passphrase-id11,714±1.37%425
generate-passphrase-id (fast enabled)50,090±2.54%432
generate-password40,261±2.26%332

Contributing

Yes please.

License

MIT

Keywords

FAQs

Last updated on 16 Jul 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc