パスワード
パスワードを自分で覚えておくのをやめて、Chrome (Google アカウント) に全部覚えさせることにした。
これまでは Chrome のパスワード管理機能は、入力の省略と、何かあったときの保存用途でしか使っていなかった。パスワードは基本的には自分で決めて自分で覚えていたし、最悪の場合は Chrome にパスワードが保存されている、といった使い方だった。そういう使い方なので、使い回しが多かった。
最近新しくアカウントを作ったサービスでパスワード要件が合わないことがあり、その場で適当に決めたパスワードを Chrome に覚えさせて、直後に忘れてしまった。だとすると、もう使い回しをやめて自動生成パスワードを全部 Chrome に覚えさせて、自分は Google アカウントのパスワードだけ覚えている状態にしてしまったほうが良い気がして、そうすることにした。
1Password のようなパスワードマネージャも考えたけど、手元にあるツールで済むならそれで良い。移行手段はある。スマートフォンは Android 端末なので Google との相性も問題なくて、文字入力時のカーソルのコンテキストメニューからパスワードマネージャ使って入力できた。普段意識していなかったけど、こんな機能があったのか。
パスワード自動生成は、基本的には Chrome に任せて問題ないものの、UI やサービスのパスワード要件と合わず使えない場合がある。その場合はコマンドを使って自動生成した。
# 英大文字, 英小文字, 数字, 文字数12
% cat /dev/urandom | LC_CTYPE=C tr -d -c '[:alnum:]' | head -c 12
# 英大文字, 英小文字, 数字, 記号, 文字数16
% cat /dev/urandom | LC_CTYPE=C tr -d -c '[:graph:]' | head -c 16
tr コマンドは /dev/urandom
のようなバイナリデータを入力ストリームに利用すると、Mac では tr: Illegal byte sequence
とエラーが出てしまうようだ。対策として LC_CTYPE=C
の変数をセットしている。正規表現の [:graph:]
は表示可能な ASCII 文字にマッチする POSIX 文字クラス。似たクラスに [:print:]
という印字可能な ASCII 文字にマッチするものがあるが、こちらはスペース (0x20) にもマッチしてしまうので注意が必要。