The fantastic pwqgen from the passwdqc package is a one-of-a-kind implementation of a pronounceable random passphrase / password generator. I’ve been searched around the net for something similar but there were none.

The passphrase generator that I want needs to be pronounceable, easy to read and type, and most importantly still secure. Of course, passwords are the most secure with a random string of characters, but they are hardly useable. More readable ones need to be longer but given their readability, the slight increase in length is a well-worth tradeoff. xkcd: Password Strength illustrates this concept succinctly.

So here it is, announcing pwqgen.rb: a Ruby implementation of passwdqc’s pwqgen, a random pronouncable password generator. Available on [RubyGems] and [Source].

It comes as a Ruby module/class and an accompanying command line tool.

Requirements

  • Ruby >= 1.9.2

Installation

gem install pwqgen.rb

Usage

CLI

You can generate a random password from the command line.

$ pwqgen.rb --help
Usage: pwqgen.rb [options] [<length>]

Options:
  -h, --help      show this help message and exit
  -v, --version   show version and exit

<length>: Number of words in the passphrase. [default: 3]

Ruby App

You can require it within your app:

require 'rubygems'
require 'pwqgen'

p Pwqgen.generate             # => "Image&Both-action"
p Pwqgen.generate 5           # => "Alaska_Union9Calf=domain&ever"

pgen = Pwqgen.new             # => #<Pwqgen::Generator:0x9f6ec40 ...>
p pgen.generate               # => "String5Rebel+horse"
p pgen.generate 2             # => "Easily2desist"

Credits

Known Issues

The random number generator is based on MT algorithm. I welcome pull-requests for better implementations of a random number generator.