Emacs: Quick Password Generator


ランダム な Password の生成

起動すると Password の書かれたウインドウが開くので、 "UR: " 行にアドレス、 "ID: " 行に ID を書いて C-c C-c でファイルセーブされます。
C-c C-q または C-c C-kESC ESC でキャンセル破棄されます。

特に決まったフォーマットではないので、秘密の合言葉等他に追記したいことがあれば別の行に書き足す等すればよいです。

ダウンロードとインストール

ここからダウンロードして load-path の通ったディレクトリに置き
init.el に以下を追加します。
コマンドは qpg-mode ではなく qpg なので注意してください。キーに割り振るか M-x qpg で起動します。

セットアップ
(require 'qpg-mode)
(global-set-key "\C-CP" 'qpg)

基本的な手順

M-x qpg 等で起動すると以下のようなバッファが開きます。

"UR: " 行に URL, "ID: "行に ID を書きます。URL ではなく UR なのは 見易く揃えるためだけです。

あとは C-c C-c とすると qpg-qiita.com-20180512101441.gpg 等という名前のファイルでセーブされます。

ひとつのファイルに追記していく

デフォルトでは C-c C-c したときに "UR: " 行に書かれたアドレスと、そのときの日付を使って生成した名前でファイルセーブされますが(これをシングルモードとします)、
変数 qpg-default-master-file-name にファイル名を設定しておくと、そのファイルに追記されていきます(マスターファイルモードとします)。

マスターファイルモードではデフォルトでは新規分がトップに追記されていきますが、変数 qpg-prependNIL にすると、おしりに追加するようになります。

注意: マスターモードで GnuPG と併用する場合固まることがあるので、バックアップオプション(qpg-backup)をつけておいたほうがいいので、
GnuPG についての項を参照しておいてください。

尚、マスターファイルモードになっていても Prefix 起動するとシングルモードで起動します。

マスターモードでおしりに追加していく
(setq qpg-default-master-file-name "~/qpg-master-file.gpg")
(setq qpg-prepend nil)

パスの長さの変更

起動中に C-c C-l で長さを尋いてくるので入力します。その長さでパスワードが再生成されこのセッションのみ有効です。
恒久的に変更するには qpg-default-length に設定します。デフォルトは 16です。

デフォルトのパスの長さを24にする
(setq qpg-default-length 24)

パスの再生成

起動中に C-l または C-c C-g するとパスワードが再生成されます。通常の画面の再描画の C-lC-M-l に逃がしてあります。

パス文字の構成

変数 qpg-pass-string-table に文字列リストで設定します。
システムによっては問題の出ることのある記号はデフォルトでは含めていません。
リストでなく文字列でも OK ですが、リストで分けた方がよりランダムになるようです。

また、起動中に C-c C-t すると一時的に文字の追加ができます。
このときも入力後に再生成されます。

デフォルトにいくつか記号を追加する
(add-to-list 'qpg-pass-string-table "_@-+")

キー操作一覧

動作 キー コマンド
保存して終了 C-c C-c qpg-commit-and-quit
キャンセル C-c C-q qpg-cancel
キャンセル C-c C-k qpg-cancel
キャンセル ESC ESC qpg-cancel
ファイル名 C-c C-n qpg-new-name
パス再生成 C-c C-g qpg-re-generate
パス再生成 C-l qpg-re-generate
パスの長さ C-c C-l qpg-length
文字列追加 C-c C-t qpg-add-table
画面リロード C-M-l recenter-top-bottom

キーの追加変更は qpg-mode-hook を利用してください

キー設定例
(add-hook 'qpg-mode-hook '(lambda () (local-set-key "\C-r" 'qpg-re-generate)))

GnuPG について

デフォルト保存名の拡張子が .gpg なので GnuPG がインストールされていれば、暗号化されて保存されるので、保存追記時に公開鍵あるいはパスを尋いてきます。そして、以前のファイルがあればバックアップを取ります。

メモリ不足なのか自分の環境のせいなのか、ときどき gpg でパケ詰まりのようなフリーズが起きるので、安全の為独自にバックアップルーチンも設けているので、Emacs のデフォルトのバックアップを切っている場合でも、こちらだけオンにできるのでできるだけ設定しておくといいでしょう。

qpg-backupNON-NIL にしておくとバックアップを作成します。
デフォルトではシステム変数 make-backup-files の値を使います。

バックアップファイルを作る
(setq qpg-backup t)

動作確認している Emacs のバージョン

動作確認しているEmacsのバージョン
;; GNU Emacs 25.3.1 (i686-w64-mingw32) of 2017-09-18

Changes

Sat Jul 17 10:05:37 2021

  • fix qpg-init-table. シーケンスコピーのし忘れ.
  • 変数 qpg-default-directory . 出力先ディレクトリの指定.

Sat Dec 19 09:47:38 2020

  • fix qpg-init-table.

Sat Dec 5 11:18:21 2020

  • 開き方を変更.
  • 操作法を忘れてしまうので menu を追加.
  • テーブル削除やイニシャライズなどを追加.