The elocrypt package

[Tags:library, program, test]

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

[Skip to Readme]


Versions 0.3.0, 0.3.1, 0.3.2, 0.4.0, 0.4.1
Dependencies base (>=4.7 && <4.9), elocrypt, MonadRandom, random [details]
License OtherLicense
Copyright Copyright: (c) 2015 Sean Gillespie
Author Sean Gillespie
Stability Unknown
Category Cryptography
Home page
Source repository head: git clone
this: git clone v0.4.1)
Uploaded Tue Jul 14 01:05:15 UTC 2015 by sgillespie
Distributions NixOS:0.4.1
Downloads 557 total (5 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2015-07-14 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for elocrypt

Readme for elocrypt-0.4.1


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 7.10 and 7.8)
  • cabal-install (tested on 1.20 and 1.22)


Elocrypt is on Hackage. Installation is as easy as:

cabal install elocrypt

Binaries are also available:


Running elocrypt is as simple as:

elocrypt [length]

Obtaining the source

Elocrypt sources can be found


In order to build or install you will need

  • GHC (tested on 7.10 and 7.8)
  • cabal-install (tested on 1.20 and 1.22)

Build elocrypt:

cabal configure
cabal build

Then, install (if desired):

cabal install

API Documentation

The full API documentation is on hackage @ To build the documentation yourself, run

cabal 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


Thanks to Tom Van Vleck for creating a 3rd order english approximation password generator. Elocrypt is based on his javascript generator @


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

Please see LICENSE for all details