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]


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 && <4.9), elocrypt, MonadRandom, random [details]
License LicenseRef-OtherLicense
Copyright Copyright: (c) 2015 Sean Gillespie
Author Sean Gillespie
Maintainer sean@mistersg.net
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 v0.3.2)
Uploaded by sgillespie at 2015-05-18T18:50:45Z
Reverse Dependencies 1 direct, 1 indirect [details]
Executables elocrypt
Downloads 7190 total (21 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for elocrypt-0.3.2

[back to package description]


Build Status

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


Elocrypt sources can be found @ https://github.com/sgillespie/elocrypt


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


Running elocrypt is as simple as...

elocrypt [length]

API Documentation

The full API documentation is generated by haddock

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 Elocrypt.Password.generate

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

Alternatively, you can use Elocrypt.Password.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