semantic-password-generator
    TypeScript icon, indicating that this package has built-in type declarations

    6.4.0 • Public • Published

    semantic-password-generator

    Build Status dependencies Status Code Climate JavaScript Style Guide

    Secure passwords that humans can read 🔒💬

    Install

    // pick up your style!
    yarn add semantic-password-generator
    npm install semantic-password-generator
    

    Usage

    The Semantic Password Generator (spg) uses the official Wikipedia API to get random articles which are transformed into the passwords. Hence, to allow a better usage of the network bandwich spg generates the password in 2 steps:

    1. Load a generator with a Wikipedia article
    2. Use the generator to get passwords
    import spg from 'semantic-password-generator'
     
    const generator = await spg()
    const password = generator()

    You can then safely generate multiple (similar) passwords with the same generator.

    while (passwords.length < 50) {
      passwords.push(generator())
    }

    The generator accepts a length argument. Note that the length won't be enforced. This means that if you want, say, a 10 chars length password. spg probably will return a bit longer one that you can trim if you want to. This is because spg tries to keep a logic sentences as much as possible and forcing a hard length will cut the last word almost all the times.

    const spg = require('semantic-password-generator')
     
    spg().then((generator) => {
      const password = generator(32)
    })

    Notice that internally spg ensures a minimum password length of 8. And a maximum as large as the Wikipedia article can provide. If you need less than 8 (please don't) you can trim it. If you want a larger one you can combine multiple generated passwords.

    Demo

    To explore the lib and explore it check out the /demo directory. Here's a snapshot of the final component:

    import React from 'react'
    import spg from 'semantic-password-generator'
     
    class App extends React.Component {
      constructor (props) {
        super(props)
        this.renewGenerator()
        this.state = { password: '' }
      }
     
      async renewGenerator () {
        this.generator = await spg()
      }
     
      onClickGenerate () {
        return () => {
          if (this.generator) {
            // always renew the generator to get 100% different passwords
            this.renewGenerator()
            // using the current generator create a new one with default values
            this.setState({
              password: this.generator()
            })
          }
        }
      }
     
      render () {
        return (
          <div>
            <p>{this.state.password}</p>
            <button onClick={this.onClickGenerate()}>
              Generate
            </button>
          </div>
        )
      }
    }

    Keywords

    none

    Install

    npm i semantic-password-generator

    DownloadsWeekly Downloads

    2

    Version

    6.4.0

    License

    MIT

    Unpacked Size

    66.6 kB

    Total Files

    35

    Last publish

    Collaborators

    • sospedra