-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generate easy-to-remember, hard-to-guess passwords -- -- Generates pronounceable, hard-to-guess passwords.. as hard as Vince -- Carter's knee cartilage is. @package elocrypt @version 0.3.2 -- | Generate a letter frequency trigraph, based on a dictionary module Data.Elocrypt.Trigraph -- | Search for the character frequencies based on the first a two-letter -- string findFrequency :: String -> Maybe [Rational] -- | A map of character frequencies, based on a dictionary. The key is a -- two-letter string, and the value is a list of probabilities (a-z). -- It's form is: -- --
-- [("aa", [2,0,3,0,0,0,1,0,0,0,0,1,1,1,0,0,0,3,2,0,0,0,0,0,0,0]),
-- ...
-- ("zz", [7,0,0,0,1,0,0,0,7,0,0,17,0,0,2,0,0,0,0,0,0,0,1,0,5,0])]
--
frequencies :: [(String, [Rational])]
-- | Generate easy-to-remember, hard-to-guess passwords
module Data.Elocrypt
-- | Generate a password using the generator g, returning the result and
-- the updated generator.
--
-- -- -- Generate a password of length 10 using the system generator -- myGenPassword :: IO (String, StdGen) -- myGenPassword = genPassword 10 `liftM` getStdGen -- --genPassword :: RandomGen g => Int -> g -> (String, g) -- | Plural version of genPassword. Generates an infinite list of passwords -- using the generator g, returning the result and the updated generator. -- --
-- -- Generate 10 passwords of length 10 using the system generator -- myGenPasswords :: IO ([String], StdGen) -- myGenPasswords = ((ls, g) -> (take 10 ls, g) liftM genPasswords 10 liftM getStdGen --genPasswords :: RandomGen g => Int -> g -> ([String], g) -- | Generate a password using the generator g, returning the result. -- --
-- -- Generate a password of length 10 using the system generator -- myNewPassword :: IO String -- myNewPassword = newPassword 10 `liftM` getStdGen -- --newPassword :: RandomGen g => Int -> g -> String -- | Plural version of newPassword. Generates an infinite list of passwords -- using the generator g, returning the result -- --
-- -- Generate 10 passwords of length 10 using the system generator -- myNewPasswords :: IO [String] -- myNewPasswords = (take 10 . genPasswords 10) liftM getStdGen --newPasswords :: RandomGen g => Int -> g -> [String] -- | Generate a password using the MonadRandom m. MonadRandom is exposed -- here for extra control. -- --
-- -- Generate a password of length 10 using the system generator -- myPasswords :: IO String -- myPasswords = evalRand (mkPassword 10) `liftM` getStdGen -- --mkPassword :: MonadRandom m => Int -> m String -- | Plural version of mkPassword. Generate an infinite list of passwords -- using the MonadRandom m. MonadRandom is exposed here for extra -- control. -- --
-- -- Generate an infinite list of passwords of length 10 using the system generator -- myMkPasswords :: IO [String] -- myMkPasswords = evalRand (mkPasswords 10) `liftM` getStdGen --mkPasswords :: MonadRandom m => Int -> m [String] -- | The alphabet we sample random values from alphabet :: [Char] -- | Generate two random characters first2 :: MonadRandom m => m String -- | Generate a random character based on the previous two characters and -- their trigraph next :: MonadRandom m => String -> m Char -- | Generate the last n characters using previous two characters and their -- trigraph lastN :: MonadRandom m => String -> Int -> m String