パスワードはどのように生成しますか?[閉まっている]
-
01-07-2019 - |
質問
パスワードはどのように生成しますか?
- ランダムキャラクター?
- パスフレーズ?
- ハイアスキー?
このようなもの?
cat /dev/urandom | strings
解決
Mac OS X の「Keychain Access」アプリケーションを使用すると、優れた OS X パスワード生成機能にアクセスできます。command + N を押して、鍵のアイコンをクリックします。パスワードのスタイル (記憶可能な、数字、英数字、ランダム、FIPS-181) と長さを選択できます。また、脆弱なパスワードについても警告します。
他のヒント
これを使って元気を出してください:)
cat /dev/urandom | tr -dc 'a-zA-Z0-9-!@#$%^&*()_+~' | fold -w 10 | head -n 1
人数を変更してパスワードの数を生成します。
パスワードを生成するための短い Python スクリプト。元々は Python クックブックからのものです。
#!/usr/bin/env python
from random import choice
import getopt
import string
import sys
def GenPasswd():
chars = string.letters + string.digits
for i in range(8):
newpasswd = newpasswd + choice(chars)
return newpasswd
def GenPasswd2(length=8, chars=string.letters + string.digits):
return ''.join([choice(chars) for i in range(length)])
class Options(object):
pass
def main(argv):
(optionList,args) = getopt.getopt(argv[1:],"r:l:",["repeat=","length="])
options = Options()
options.repeat = 1
options.length = 8
for (key,value) in optionList:
if key == "-r" or key == "--repeat":
options.repeat = int(value)
elif key == "-l" or key == "--length":
options.length = int(value)
for i in xrange(options.repeat):
print GenPasswd2(options.length)
if __name__ == "__main__":
sys.exit(main(sys.argv))
オープンソース キープパス このツールには、強化されたランダム化など、パスワード生成のための優れた機能がいくつかあります。
私が使う パスワードセーフ すべてのパスワードを生成して保存すると、非常に強力なパスワードを覚える必要がなくなります (金庫のロックを解除するパスワードを除く)。
あなたの提案を少し変更したもの:
head -c 32 /dev/random | base64
オプションで、末尾をトリミングできます。 =
そして使用します echo
改行を取得するには:
echo $(head -c 32 /dev/random | base64 | head -c 32)
これにより、印刷可能な文字のみを確保しながら、より予測可能な出力長のパスワードが得られます。
のアルゴリズム アプリ かなりクールです。ただし、私はほとんどの場合、自分で定義したリストからランダムな文字を使用します。大部分は数字、大文字と小文字、およびいくつかの句読点です。「1」、「l」、「I」、「O」、「0」など、別の文字と間違われやすい文字を削除しました。
私はランダムな文字のパスワードは好きではありません。それらは覚えるのが難しいです。
通常、私のパスワードは、その情報が私にとってどれだけ重要かに基づいて段階に分類されます。
私の最も安全なパスワードは、BBS でランダムに生成された古いパスワードの組み合わせを使用する傾向があります。私は若すぎて愚かで、変更方法を知らず、覚えていませんでした。Shift キーを自由に使用して、それらのいくつかを追加するとうまく機能します。これらを使用しない場合は、パスフレーズの方が良いと思います。おそらく、私が楽しんでいる本のフレーズで、これも大文字と小文字が混在し、特殊な記号が含まれているものかもしれません。多くの場合、複数のフレーズ、または 1 つのフレーズの複数の単語を別のフレーズの複数の単語と連結して使用します。
優先度の低いサイトでは、パスワードは非常に短く、通常はいくつかの使い慣れたトークンを組み合わせたものになります。
私が最も問題を抱えているのは仕事で、30 日ごとにパスワードを変更する必要があり、パスワードを繰り返すことができません。私も他の人たちと同じように、パスワードを考え出し、増加し続けるインデックスを末尾に追加するだけです。そのようなパスワード規則は不合理です。
私が使用している Web サイトについて スーパージェンパス, 、ハッシュ関数 (MD5 に基づく) を使用して、マスター パスワードとドメイン名からサイト固有のパスワードを導出します。そのパスワードをどこにも保存する必要はありません (SuperGenPass 自体は完全にクライアント側のブックマークレットです)。マスター パスワードを覚えておくだけで済みます。
それは、パスワードを何に使いたいか、そしてデータの機密性がどの程度のものであるかによって大きく左右されると思います。クライアント用にある程度安全なパスワードを生成する必要がある場合は、通常、覚えやすい文を使用し、各単語の最初の文字を使用し、数字を追加します。「スタックオーバーフローで使用する極秘パスワード」=>「tspfuos8」のようなもの。
ただし、ほとんどの場合、Linux の「pwgen」ユーティリティを使用してパスワードを作成します。複雑さと長さを指定できるため、非常に柔軟です。
pwgen と呼ばれる標準の UNIX ユーティリティ。実質的にすべての Unix ディストリビューションで利用可能です。
私が使う キーパス 複雑なパスワードを生成します。
私が使う https://www.grc.com/passwords.htm WPA キーなどの長いパスワード文字列を生成します。何らかの登録サイトを実装する必要がある場合は、これを (スクリーンスクレイピング経由で) 使用して認証パスワード ハッシュ用のソルトを作成することもできます。
状況によっては、単語のコーパスに対してマルコフ連鎖分析を使用する Perl の Crypt::PassGen モジュールを使用します (例:適切な Unix システムでは /usr/share/dict/words)。これにより、適度に発音可能で記憶に残るパスワードを生成できます。
とはいえ、$work ではハードウェア チャレンジ/レスポンス トークン メカニズムに移行しています。
強力なマスター パスワードを好きなように選択し、cryptohash(マスターパスワード + サイト名) を使用して各サイトのパスワードを生成します。サイト B のパスワードが悪者の手に渡った場合 (悪意のある管理者、WLAN スニッフィング、またはサイト侵害などにより) サイト A のパスワードを失うことはなく、覚えておく必要があるパスワードは 1 つだけです。
最近、パスワードを生成する珍しい方法を使用しました。非常に強力である必要はなく、ランダムなパスワードは覚えるのが非常に困難です。私のアプリケーションには、北米の都市の巨大なテーブルがありました。パスワードを生成するために、乱数を生成し、ランドン シティを取得し、別の乱数を追加しました。
ボストン9934
数値の長さはランダムなので (数値が付加されているか、先頭に付加されているか、またはその両方であるかのように)、総当たり攻撃はそれほど簡単ではありませんでした。
そうですね、私のテクニックは、好きな曲の歌詞の頭文字を使うことです。例が必要です:毎晩夢の中であなたを見て、あなたを感じます...
ください:
敵視する
...そして少し数字を挿入します。i=1、o=0など...
en1md1sy1fy
...大文字化?常に自分自身を大切にしてください:)
そして最後のパスワードは…
en1Md1sy1fy
ジョエル・スポルスキー 短い記事を書きました: ついにパスワード管理が可能に
…ついにすべてのパスワードを管理する良い方法があります。このシステムは、定期的に使用するコンピューターの数に関係なく機能します。Mac、Windows、およびLinuxで動作します。安全です。パスワードをインターネットサイトに公開しません(信頼するかどうかにかかわらず)。すべてのサイトに対して非常に安全なランダムなパスワードを生成します。すべてをセットアップすると、パスワードファイルの自動バックアップをオンラインで自動バックアップし、無料です。
import random
length = 12
charset = "abcdefghijklmnopqrstuvwxyz0123456789"
password = ""
for i in range(0, length):
token += random.choice(charset)
print password
ここでいくつかの素晴らしい回答を読んで試してみましたが、調整が簡単で、非常に一般的な Linux ユーティリティとリソースを使用できる生成手法をまだ探していました。
本当に気に入りました gpg --gen-random
答えましたが、少しぎこちなく感じましたか?
さらに検索した後、この宝石を見つけました
echo $(</dev/urandom tr -dc A-Za-z0-9 | head -c8)
パスワード:
$ gpg --gen-random 1 20 | gpg --enarmor | sed -n 5p
パスフレーズ:
ほとんどの場合、私はタイプします dd if=/dev/urandom bs=6 count=1 | mimencode
そして結果をパスワードセーフに保存します。
私が使用している Mac では RPG.
PHP では、ASCII テーブルからランダムな文字列を生成します。見る (擬似)ランダムな英数字文字列の生成
外国語の文の頭文字から始めますが、その一部を大文字にするための規則がいくつかあります。次に、文の特定の部分に、アプリケーションまたは Web サイトの名前に由来する数字と記号の組み合わせを挿入します。
このスキームにより、アプリケーションごとに一意のパスワードが生成され、毎回頭の中で問題なく再導出できます (したがって暗記する必要はありません)。パスワードの一部が辞書に表示される可能性はゼロです。
パスワードを作成するシステムでパスワードが受け入れられるかどうかを確認するには、追加のルールをコーディングする必要があります。一部のシステムには、「最低 2 桁の数字と 2 つの大文字」などのポリシーがあります。パスワードを 1 文字ずつ生成するときに、必要に応じて数字/英字/大文字の数を記録し、パスワードの生成を do.. で囲みます。その間、(digitCount>1 && alphaCount>4 && upperCount になるまでパスワードの生成が繰り返されます) >1) など。
Password Monkey、iGoogle ウィジェット!
Firefox アドオンの Password Hasher は、パスワードを生成するのに非常に優れています。 パスワードハッシャー
この Web サイトには、アドオンのオンライン代替機能もあります。オンラインパスワードハッシャー
Perl プログラムを使用して印刷可能な ASCII 文字をランダムに生成し、より「安全な」パスワードを生成するための追加のルールがある場合はスクリプトを微調整します。パスワードを付箋に書き留めておいて、1 ~ 2 日後に破棄することもできます。私の指はそれを記憶しており、私のパスワードは完全に推測できなくなります。
これは私のメインのログイン パスワード用で、私は毎日、実際に 1 日に何度も座って画面のロックを解除するときに使用しています。これにより、早く暗記することが容易になります。明らかに、他の状況のパスワードでは別のメカニズムを使用する必要があります。