password
Haskellで何か書きたいなあ、と思ってふと思いついた。
パスワードの管理ソフトが欲しいなあ、と。
結構パスワードがあちこちばらばらになりがちで、一括して管理できるようなものが欲しいなと前々から思っていたんです。
で、パスワードの生成なんかもやってくれると嬉しいなみたいな。
作ってみた。
テキストファイルで作ったので、セキュリティとしてはだめだめですが笑
基礎はこんなもんですね。
あとはこれにバイナリなり暗号化なり、処理を加えてやれば完成です。
とっても適当に作ったので(パスワード長とか)、これでいいのかという感じですが、私一人が使う分には問題ないのでいいのです。
なので、とりあえず。
import System.Random import System.IO import Data.Char c_list = ['a'..'z']++['A'..'Z']++['0'..'9'] file = "password.txt" touples :: [String] -> (String,String) touples (a:b:_) = (a,b) mkPass :: String -> IO() mkPass key = do g <- getStdGen let ns = map ((`mod`62).abs) $ take (2*length key) $randoms g pass = map (\(a,b)->b!!a).zip ns$repeat c_list appendFile file $ key++" "++pass++"\n" search :: String -> [(String,String)] -> IO() search key xs = case lookup key xs of Just pass -> print pass Nothing -> makePass key main = do cs <- readFile file key <- getLine search key.map (touples.words) $ lines cs