Non Programming Manager

    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>
        )
      }
    }

      This feature is exclusive to Teams

      Illustration of wombats

      The package file explorer is only available for Teams at the moment.

      We may support exploring this package in the future. Check back soon.

      Install

      npm i semantic-password-generator

      DownloadsWeekly Downloads

      1

      Version

      6.4.0

      License

      MIT

      Unpacked Size

      66.6 kB

      Total Files

      35

      Last publish

      Collaborators

      • sospedra