ボーナス

ボーナス

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エミュレーションレイヤなど、一部のシステムでは非セキュアシードに置き換えることができます。shufshuf
  • 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 "-"

答え2

暗号化の使用を考慮しない標準ユーティリティを使用すると、これは実行されません。 csPRNGを使用しているか、それを正しくシードしていると信じる理由はなく、あなたの方法を知っている人はあなたのパスワードフレーズを再現することができます。同様に、多目的ユーティリティを正しく使用する方法がわからない場合は、一度試してください。

pwqgen~からpasswdqc

答え3

辞書が必要です。 Bitcoinに言及したので、次のものが必要になる可能性があります。

https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

母国語が英語でない場合は、別の言語の単語リストを同じリポジトリで使用できます。

この english.txt ファイルが与えられたら、以下を使用してランダムに選択できますshuf

$ shuf -n 4 english.txt 
anchor
neck
trumpet
response

本当に安全なパスワードのためには4単語以上が必要です。攻撃者が試すことができる回数が非常に制限されているオンラインサービスには、4つの単語が適しています。ビットコインの推奨事項は16文字のようですが、わかりません。

また、この例では、各単語が一度だけ表示されることがあります。繰り返し単語を許可するには、次のオプションを追加してください--repeat

$ shuf -n 4 -r english.txt

これにより、各単語が複数回表示されることがあります。

1行に出力したい場合は、次のものを追加できますxargs echo

$ shuf -n 4 english.txt | xargs echo
math easily cube daughter

またはコマンド置換を好む場合:

$ echo $(shuf -n 4 -r english.txt)
photo milk roast ozone

ところで、このようなスタイルのパスワードは覚えにくいと思います。

まあ、私は幸運だった。math easily cube daughterなぜなら、これは私があなたの娘がキューブのようなものを持って数学を簡単にすることができる話を簡単に考えることを可能にしたからです。これはXKCDの例の言葉のように人間に関連することができるものです。

しかし、それはまさに何ですかanchor neck trumpet response?私は創造的な漫画作家ではないので、ニーモニックを思い出すことができませんでした。だからすぐ忘れられます。

言葉を覚えても、正しい順序で覚えておくのは難しいかもしれません。それ以外のものmath easily cube daughterですdaugher easily math cubeか?

パスワードはランダムでなければならず、選択または変更することはできません。


ビットコインシードの場合、実際に覚えてはいけません。ただ簡単に使える方法です。誰でも紙に16の単語を書いて正確に発音できます。任意の文字を使用すると、間違いがはるかに簡単です。


ランダム性が懸念される場合は、shufすべての--random-source=/dev/urandomコマンドにこのパラメータを追加してくださいshuf

また、見ることができますhttps://www.gnu.org/software/coreutils/manual/html_node/Random-sources.html#Random-sources

答え4

この試み、

shuf --random-source=/dev/urandom -n5 /usr/share/dict/words | sed 's/[^[:alnum:]]//g' | paste -sd_

出力:

Quayles_knockwursts_scrotums_Barrie_hauler

説明する:

  • shuf --random-source=/dev/urandom -n5 /usr/share/dict/wordsdictファイルからランダムな5つの単語を取得する
  • sed 's/[^[:alnum:]]//g'英数字以外の文字を削除
  • paste -sd__、単語をアンダースコア()で連結します。

代わりに、インターネット上のすべての単語リストファイルを使用できます/usr/share/dict/words

Vocabularyがない場合は、Vocabularyをインストールしてください。展開ストアに存在する可能性があります。https://packages.debian.org/sid/wordlist:

sudo apt install wamerican

関連情報