2017-01-20 3 views
1

私は、およそ次のようになりますいくつかのコードに出くわした:ランダムに生成されたパスワードでパスワードの複雑さの要件を強制すると、より安全になりますか?

function generatePassword() { 
    let password; 
    do { 
    password = generateRandomString(); 
    } while (!checkPasswordComplexity(password)); 
    return password; 
} 

generateRandomString()を想定/パスワードは大文字/小文字のいくつかの所定の最小数が含まれていることを真にランダムな文字の所望のセットの文字列、およびcheckPasswordComplexity()チェックを返します。数字/特殊文字。

基本的には、ランダムなパスワードを生成し、特定の複雑さの要件をチェックします。チェックが失敗した場合は、再度試みます。

最初の質問:

が、これは実際にちょうどgenerateRandomStringからの最初の結果を返すよりも安全ですか?

2番目の質問:

これは実際には良い習慣である場合は、直接、複雑さの要件を満たすパスワードを生成するために、より効率的な(しかしまだ安全な)方法はありますか?

最初の質問:

答えて

0

私自身の質問に答える開始するには

一方を、パスワードクラッカーは、それほど複雑候補パスワードで開始される可能性があります。一方、クラッカーがあなたの複雑さの要件を知っている場合、これは実際に検索スペースを縮小しています。実際には、どちらが良いか分かりません。

2番目の質問:

あなたが必要な場合は、長さ10のパスワードでの2つの特殊文字がランダムに、最終的なパスワードをランダムな位置に配置し、特殊な文字セットから2つの文字を選んで、と言います。次に、残りの8つの位置に文字セット全体のランダムな文字を入力します。

関連する問題