diff options
Diffstat (limited to 'src/ZeroBin/Utils.hs')
-rw-r--r-- | src/ZeroBin/Utils.hs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ZeroBin/Utils.hs b/src/ZeroBin/Utils.hs new file mode 100644 index 0000000..34871d2 --- /dev/null +++ b/src/ZeroBin/Utils.hs @@ -0,0 +1,19 @@ +module ZeroBin.Utils ( + toWeb +, makePassword +) where + +import Crypto.Random.Entropy (getEntropy) +import Data.ByteString (ByteString) +import Data.ByteString.Base64 (encode) +import Data.ByteString.Char8 (unpack) +import Data.Char (isAlphaNum) + + +toWeb :: ByteString -> String +toWeb = takeWhile (/= '=') . unpack . encode + +makePassword :: Int -> IO String +makePassword n = (map (\c -> if isAlphaNum c then c else 'X') + . toWeb) `fmap` getEntropy n + |