LoginSignup
0
0

More than 3 years have passed since last update.

複数単語からなるパスワードを生成するワンライナー

Last updated at Posted at 2019-09-20

複数の英単語を組み合わせたパスワードは覚えやすく強固らしいです( https://xkcd.com/936/ )。

ところで、macOSなどには /usr/share/dict/words という単語一覧の辞書ファイルがあります。パスワードとして辞書に乗っているような単語を設定できないようにするなどの用途で使われるようです。

今回はその「パスワード使用禁止単語」のファイルを使って複数単語のパスワードを生成するワンライナーを考えてみました。

# bash版
echo $(shuf --random-source=/dev/random -n 4 /usr/share/dict/words) | sed -e 's/ /-/g' | tr '[A-Z]' '[a-z]'
# fish版
echo (shuf --random-source=/dev/random -n 4 /usr/share/dict/words) | sed -e "s/ /-/g" | tr "[A-Z]" "[a-z]"

※ 事前に coreutils をインストールして shuf コマンドを使えるようにしておきます。

$ brew install coreutils

alias化

Fish版

echo 'alias pg=\'echo (shuf --random-source=/dev/random -n 4 /usr/share/dict/words) | sed -e "s/ /-/g" | tr "[A-Z]" "[a-z]"\'' >> ~/.config/fish/config.fish

実行例

下記のように4つの単語からなるパスワードが生成されます。

$ pg
aureocasidium-vermis-sellenders-isognathous
$ pg
gutterblood-preallegation-razormaking-unlucky
$ pg
perfectioner-unaggression-scientician-predissolve

その他

  • shuf コマンドで辞書ファイルから4単語抜き出す際に /dev/random を指定してよりランダムにしています。
  • sedtr でハイフン区切り&小文字にしています。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0