自分が実践しているパスワード管理のChromeExtension実装である.
「パスワードの管理を避ける」という考え方という記事に触発され, 自分のパスワード管理方法を公開しようと思ったのが経緯である.
自分でビルドを行うには, npm
とbower
が必要である.
git clone git@github.com:yucchiy/password-generator.git
cd password-generator
npm install && bower install
grunt build
GoogleChromeより, extensionの設定画面を開き,
dist
ディレクトリを「Load unpacked extension」することで読み込むことでインストールできる.
ここから ビルド済みの パッケージをzipでダウンロードできる. 展開後に生成されるディレクトリをextensionの設定画面よりロードすることでインストールできる.
そのうち申請します. アイコン募集中.
読み込み後, このジェネレータの設定画面でマスタートークン
を設定する.
設定しなくてもランダムな文字列が設定されるが, セキュリティの都合, 必ず設定する.
基本的なアイデアは, 「パスワードの管理を避ける」という考え方と変わらないが,
よりウェブサービスで使いやすいように, 予め設定しておいたマスタートークン
と, ウェブページのドメイン
と,
ユーザのウェブページでのユーザID
を元にパスワードを作成するような実装となっている.
この時ドメイン
は, 現在開いているタブのドメインを自動的に補完するので,
ユーザは, 自分のユーザIDを入力するだけで簡単にパスワードを生成することができる.
基本的なアイデアは, http://imoz.jp/password.htmlであるが, ウェブサービス 利用に特化した実装となっている.
実装はCoffeeScriptで行うと以下の通り.
base64_encode(pack('H*', md5(username + "@" + domain + ":" + master_token))).split('')
ちなみに, base64_encode
などの関数は, php.jsを利用している.
セキュリティの都合, このジェネレータで作ったパスワードをまとめて変更したい場合は, マスタートークン
を
変更するだけで良い.