2008-07-13

パスワード生成Greasemonkeyスクリプト

Firefox用の、パスワードを作成するGreasemonkeyスクリプトを書いてみました。作成されたパスワードは自動でクリップボードにコピーできます。dataスキーム、Flashファイルは使っていません。

PassMaker.user.js

認証画面のパスワード入力欄で、Altキーを押すと、自動作成されたパスワードが記入されます。認証サイトごとに、パスワードの文字数や使う記号を設定できます。外部ライブラリとの通信、パスワードの平文・暗号文・ハッシュ値のPCへの保存は行ないません。

パスワードは、

  • ドメイン名 (www.google.com, login.yahoo.co.jp, www.hatena.ne.jp など)
  • ユーザー欄に入力された文字列
  • パスワード欄に入力された文字列
などを参照して作成されます。 ユーザー名とパスワード欄に事前入力する文字列がたとえ同じでも 別ドメインのウェブサービスでは、異なるパスワードが自動生成されます。 初期設定では、8文字のパスワードが作られます。 文字数を変更するには、パスワード欄で、Escキーを押します。 表示された設定項目のlength欄に希望するパスワードの文字数を入力します。 最大文字数は43文字です。 初期設定では、数字と大文字・小文字のアルファベットからなるパスワードが作られます。 2文字まで、パスワードに使用可能な記号を指定することができます。 その設定は、marks欄に入力します。 salt欄に文字列を入力すると、異なるパスワードを作成することができます。 作成されたパスワードをダイアログで表示させるかどうかをshow項目のラジオボタンで選べます。copy項目のラジオボタンでは、パスワードをクリップボードにコピーするかどうかを設定できます。OKボタンを押すか暗くなった画面をクリックすると、設定情報が保存され画面が元に戻ります。RESETボタンを押すと、そのサイトに関する設定情報がPCから削除されます。

アドレスバーにabout:configと入力し、フィルタを使うことで設定情報を見ることも出来ます。設定名greasemonkey.scriptvals.http://juce6ox.blogspot.com//PassMaker.dataに各サイトでの設定値を保存しています。

Firefoxの初期設定では、javascriptからクリップボードへのコピーは禁止されているようです。コピーを許可するための手順は以下の通りです。

  1. NoScriptアドオンを利用している場合
  2. NoScriptアドオンの詳細設定で、「クリップボードからリッチテキストのコピーとペーストを可能にする」をチェックします。
  3. NoScriptアドオンを利用していない場合(Firefoxの初期設定)
  4. Firefoxのプロファイルフォルダにあるuser.jsを編集します。 無い場合は、新規にuser.jsというファイルをそのフォルダに作成します。 その際に文字コードは、UTF-8を指定します。
user.jsに次のコードを加えます。
user_pref("capability.policy.policynames", "allowclipboard");
user_pref("capability.policy.allowclipboard.sites", "https://www.google.com https://login.yahoo.co.jp https://www.hatena.ne.jp");
user_pref("capability.policy.allowclipboard.Clipboard.copy", "allAccess");
上記の例は、GoogleYahoo!はてなへの認証画面でパスワードコピーを許可しています。 パスワードのクリップボードへの自動コピーを許可するサイトを追加するには、上記2行目のように認証を行うURLを半角スペースで区切って追加してください。

履歴

  • 2008/7/15 : ver. 1.2
    設定値に関わらずパスワードが1文字になる場合の不具合を修正
  • 2008/7/14 : ver. 1.1
    パスワード生成後のフォーカス位置を入力欄に

参考サイト