KeePassでパスワード管理
おそらく明日到着するはずのmacbookproに環境を移行するため、パスワードとかをどうしようか…ということでその辺りさがしてみる。今までブラウザについてるパスワード記憶機能だけ使ってて、ブラウザを変えるたびにパスワードがわかんなくなったりして、もういい!ってことになること数回。そういうことを無くすためにもパスワードマネージャ的なソフトを探した。
結局KeePassってやつにすることにした、理由は
- パスワードのDBをオンラインストレージにおいて別環境と同期させれるらしいから
- ライフハッカーブログ(だっけ?)で『これいいよっ』的な紹介をされてたから
の2つ(ぉぃ)。Roboなんちゃらも前にチャレンジしたけど理由は忘れたが今は使ってない。ので除外。ほかにもいろいろあったけど適当にこれにした。
KeePassで何をやったか
Chromeの記憶してるパスワード情報をExport
これはこの海外サイトで落とせる。ChromePassというのでやれた。Chromeのパス情報をCSVでエクスポートできる。
んで、KeePassにインポートだ!と思って、KeePassでインポートファイル形式を選択する。たぶん『一般的なCSV形式』、これだ。と思ってやってみる(KeePassには日本語パッチを当ててる)結果は出来てるように見える。カラムを適切に入れ替えないとタイトルにURLが入ったりするけど、まぁ出来てる。
…と思ったけど、『FiledID_Password』とかの設定が入ってない。これはKeePass上のパスワードレコードをダブルクリックして、高度タブの文字列フィールドに出ているはずのもので。FireFoxからインポートしたときは何もしなくてもここに設定されてたので、たぶんあったほうが良いものなのだろう。(いらないかもしらん)
FiledID_Password(と、FieldID_UserName)がほしい
ということで、FireFoxのエクスポートファイル(XMLなんだけど)の仕様は分かっているので(さっきKeePassにインポートするときにエクスポートしたやつがあるので)、ChromePassで吐いたCSVをPerlでXMLにコンバートすることにした。割とどうでもいいことに時間を使ったのでちょっとどうなの?とは思った。
Perl初心者なのです
Perl初心者だからこそ!なんか組みたくなったので組んだ。結果出来たし、いつもと違って詰まったりしなかった。思ったのは、Perlってやっぱり便利なんだねってこと(C++と比べて)。今回最初に書いたPerlスクリプトから最終的なものになるまで色々調べつつやってたら。(基本的な書き方なんだけど)すごく短く、すっきりしたスクリプトになった。このすっきりしてく過程でちょっとした快感を味わった気がする。最後には空行とかDebugPrint含めて35行だからなぁ、俺でこれだからもっと短くなるんだろうなー。エラーチェック皆無だけどw
せっかくだから俺はこのソースをさらすぜ
なんか間違ってるかも知れない。まぁPerlをCGIで使うための入門書1冊読んだぐらいの知識なので…。あと、CSVのカラムは必要なやつ以外手で削除してる。
#! /usr/bin/perl use warnings; open( OUT, ">expt.xml" ); print "0: open expt.xml\n"; print OUT <<EOT <xml> <entries ext="Password Exporter" extxmlversion="1.1" type="saved" encrypt="false"> EOT ; my $srcCsvPath = $ARGV[ 0 ]; print "src csv path : $srcCsvPath\n"; open( IN, $srcCsvPath ); print "1: open $srcCsvPath\n"; while( <IN> ) { chomp; # 改行文字の削除。$_に作用 my ( $url, $usrNameField, $passwdField, $usrName, $passwd ) = split( /,/, $_, 5 ); print OUT qq{<entry host="$url" user="$usrName" password="$passwd" formSubmitURL="" httpRealm="" userFieldName="$usrNameField" passFieldName="$passwdField"/>\n}; } close( IN ); print OUT <<EOT </entries> </xml> EOT ; close( OUT );
そういや大事なことをわすれてた
肝心のKeePassまだ一回も使ってみてないwwなので、ちゃんとこのインポートとか出来てるかわからんっすwまぁどうせMacセットアップ時にやらんとダメだから放置ー。