elocrypt: Generate easy-to-remember, hard-to-guess passwords

[ cryptography, library, program ] [ Propose Tags ]

Generates pronounceable, hard-to-guess passwords--as hard as Vince Carter's knee cartilage is.

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 0.3.0, 0.3.1, 0.3.2, 0.4.0, 0.4.1, 0.6.0, 1.0.0, 2.0.0, 2.0.1, 2.1.0
Dependencies base (>=4.7 && <5), containers, elocrypt, MonadRandom, random [details]
License LicenseRef-OtherLicense
Copyright Copyright: (c) 2017 Sean Gillespie
Author Sean Gillespie
Maintainer sean@mistersg.net
Revised Revision 1 made by sgillespie at 2019-12-16T02:00:04Z
Category Cryptography
Home page https://www.github.com/sgillespie/elocrypt
Source repo head: git clone https://github.com/sgillespie/elocrypt.git
this: git clone https://github.com/sgillespie/elocrypt.git(tag v2.1.0)
Uploaded by sgillespie at 2019-12-16T01:42:29Z
Reverse Dependencies 1 direct, 1 indirect [details]
Executables elocrypt
Downloads 7214 total (24 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-12-16 [all 1 reports]

Readme for elocrypt-2.1.0

[back to package description]


Build Status

Elocrypt generates pronounceable, easy-to-remember, hard-to-guess passwords... as hard as Vince Carter's knee cartilage is. Elocrypt includes a Haskell library and program.


In order to build or install you will need

  • GHC (tested on 8.6.5)
  • Stack (tested on


Elocrypt is on Hackage. Installation is as easy as:

cabal install elocrypt

Binaries are also available:


Generate a list passwords:

elocrypt [length]

You can also generate random phrases (1 per line):

elocrypt --passphrases [min-length] [max-length]

Obtaining the source

Elocrypt sources can be found


In order to build or install you will need

Build elocrypt:

stack setup
stack build

Then, install (if desired):

stack install

API Documentation

The full API documentation is on hackage @ https://hackage.haskell.org/package/elocrypt/docs. To build the documentation yourself, run

stack haddock

API Examples

You can use elocrypt to generate words in any Haskell code, so long as you have installed elocrypt. Generate a word by using Data.Elocrypt.newPassword

import Data.Elocrypt
-- Generate a word of length 10
fooGen :: IO String
fooGen = newPassword 10 `liftM` getStdGen

Alternatively, you can use Data.Elocrypt.mkPassword if you want to complete control of the random monad

import Data.Elocrypt
import Control.Monad.Random
-- Generate a word of length 10
fooGen' :: IO String
fooGen' = evalRand (mkPassword 10) `liftM` getStdGen


Sean Gillespie sean@mistersg.net


Thanks to Tom Van Vleck for creating a 3rd order english approximation password generator. Elocrypt is based on his javascript generator @ http://www.multicians.org/thvv/gpw-js.html


You can use this source for any reason, provided that you:

Please see LICENSE for all details