xkcdのCorrect Horse Battery StapleやBitcoin Seedなど、覚えやすいパスワードを生成するのに最適なシングルライナーは何ですか?
編集1:
これは以下に関連しています。ランダムな文字列の生成任意の文字列は覚えておくことができないからです。そして強制xkcd...
ベストアンサー1
まず、次のようにしておなじみの言語の辞書をインストールします。
sudo apt-get install <language-package>
利用可能なすべてのパッケージを表示するには:
apt-cache search wordlist | grep ^w
メモ:すべてのインストール手順はDebianベースのオペレーティングシステムを使用すると想定しています。
辞書をインストールしたら、次を実行します。
WORDS=5; LC_ALL=C grep -x '[a-z]*' /usr/share/dict/words | shuf --random-source=/dev/urandom -n ${WORDS} | paste -sd "-"
これは次のように出力されます。
blasphemous-commandos-vasts-suitability-arbor
それを破壊する:
WORDS=5;
- パスワードに必要な単語数を選択します。LC_ALL=C grep -x '[a-z]*' /usr/share/dict/words
- 小文字のアルファベット文字を含む単語のみを選択します('
その中に含まれる単語やなどのファンキーな文字を除くéclair
)。発音区別記号のない小文字以外の文字に似た記号が正規表現で一致しないことをLC_ALL=C
確認してください。[a-z]
shuf --random-source=/dev/urandom -n ${WORDS}
- できるだけ選択してください。性格あなたが要求したように。ランダムジェネレータが安全にシードされていることを--random-source=/dev/urandom
確認してください。このジェネレータがないと、デフォルトではセキュリティシードに設定されますが、Windowsの一部のUnixエミュレーションレイヤなど、一部のシステムでは非セキュアシードに置き換えることができます。shuf
shuf
paste -sd "-"
-
- すべての単語を連結するには(記号を別の記号に自由に変更)を使用します。
または関数でラップすることもできます。
#!/bin/bash
function memorable_password() {
words="${1:-5}"
sep="${2:--}"
LC_ALL=C grep -x '[a-z]*' /usr/share/dict/words | shuf --random-source=/dev/urandom -n ${words} | paste -sd "$sep"
}
または
#!/bin/sh
memorable_password() {
words="$1"
if [ -z "${words}" ]; then
words=5
fi
sep="$2"
if [ -z "${sep}" ]; then
sep="-"
fi
LC_ALL=C grep -x '[a-z]*' /usr/share/dict/words | shuf --random-source=/dev/urandom -n ${words} | paste -sd "$sep"
}
どちらも次のように呼び出すことができます。
memorable_password 7 _
memorable_password 4
memorable_password
返品:
skipped_cavity_entertainments_gangway_seaports_spread_communique
evaporated-clashes-bold-presuming
excelling-thoughtless-pardonable-promulgated-forbearing
ボーナス
奇妙で面白いですが、プレインストールは不要で、あまり安全ではないパスワードの場合は、次のものを使用できます(@ jpa提供)。
WORDS=5; man git | \
tr ' ' '\n' | \
egrep '^[a-z]{4,}$' | \
sort | uniq | \
shuf --random-source=/dev/urandom -n ${WORDS} | \
paste -sd "-"