1
我碰到一些代碼,看起來大約是這樣的:在隨機生成的密碼中強制執行密碼複雜性要求會使它們更安全嗎?
function generatePassword() {
let password;
do {
password = generateRandomString();
} while (!checkPasswordComplexity(password));
return password;
}
假設generateRandomString()
返回字符組所需的真正的隨機字符串,checkPasswordComplexity()
檢查密碼是否包含大寫/小寫的一些預定義的最小數量/數字/特殊字符。
基本上它會嘗試生成隨機密碼,檢查某些複雜性要求,如果檢查失敗,則會再次嘗試。
第一個問題:
這實際上不僅僅是返回從generateRandomString
的第一個結果更安全?
第二個問題:
如果這其實是一個很好的做法,有沒有更有效的(但仍然是安全的)的方式直接生成滿足複雜需求的密碼?