Password policies and best practices in Cybersecurity - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
We want to understand how the time it takes to check passwords grows as the number of users or password rules increases.
How does adding more rules or users affect the time needed to enforce password policies?
Analyze the time complexity of the following password validation process.
function validatePassword(password, rules) {
for (let rule of rules) {
if (!rule.check(password)) {
return false;
}
}
return true;
}
// rules is an array of functions checking conditions like length, digits, symbols
// password is a string to validate
This code checks a password against a list of rules one by one and stops if any rule fails.
- Primary operation: Looping through each password rule to check it.
- How many times: Once for each rule until a failure or all pass.
As the number of rules grows, the time to check a password grows roughly the same amount.
| Input Size (number of rules) | Approx. Operations |
|---|---|
| 10 | 10 checks |
| 100 | 100 checks |
| 1000 | 1000 checks |
Pattern observation: The time grows directly with the number of rules; doubling rules doubles the checks.
Time Complexity: O(n)
This means the time to validate a password grows in a straight line as the number of rules increases.
[X] Wrong: "Adding more rules won't affect validation time much because checks are simple."
[OK] Correct: Each rule adds a check, so more rules mean more work and longer validation time.
Understanding how password validation time grows helps you design secure systems that stay fast as they grow.
"What if we stopped checking rules as soon as one fails? How would that change the time complexity in practice?"
Practice
Solution
Step 1: Understand password strength criteria
A strong password should mix letters, numbers, and special characters to increase complexity.Step 2: Evaluate each option
Options A, B, and D describe weak passwords that are easy to guess or too short.Final Answer:
It contains a mix of letters, numbers, and special characters. -> Option BQuick Check:
Strong password = mix of characters [OK]
- Choosing simple or common words
- Using only numbers or letters
- Making passwords too short
Solution
Step 1: Recall standard password length rules
Most secure policies require passwords to be at least 8 characters for safety.Step 2: Check each option against best practices
Options A, C, and D contradict common security advice by limiting length or character types.Final Answer:
Passwords must be at least 8 characters long. -> Option AQuick Check:
Minimum length = 8 characters [OK]
- Setting passwords too short
- Restricting characters unnecessarily
- Ignoring numbers or symbols
def is_strong(password):
return (len(password) >= 8 and
any(c.isdigit() for c in password) and
any(c.isalpha() for c in password) and
any(not c.isalnum() for c in password))
print(is_strong("Pass123!"))
print(is_strong("password"))
What will be the output?Solution
Step 1: Analyze the first password "Pass123!"
It has length 8, digits (1,2,3), letters (P,a,s,s), and special character (!), so returns True.Step 2: Analyze the second password "password"
It has letters only, no digits or special characters, so returns False.Final Answer:
True False -> Option AQuick Check:
Strong password check = True, weak password check = False [OK]
- Ignoring special character check
- Assuming letters-only is strong
- Misreading length condition
Solution
Step 1: Check each password for uppercase, lowercase, and number
secure123 has no uppercase letters, violating the rule.Step 2: Confirm other options meet all criteria
Options B, C, and D all have uppercase, lowercase, and numbers.Final Answer:
secure123 -> Option CQuick Check:
Missing uppercase letter = violating rule [OK]
- Overlooking missing uppercase letters
- Assuming numbers alone are enough
- Ignoring case sensitivity
Solution
Step 1: Understand the role of strong passwords and 2FA
Strong passwords protect against guessing, while 2FA adds a second verification step.Step 2: Evaluate each option's security approach
Combining strong passwords with 2FA adds an extra security layer, which correctly states that both improve security. Options A, B, and C misunderstand or weaken security.Final Answer:
Combining strong passwords with 2FA adds an extra security layer. -> Option DQuick Check:
Password + 2FA = stronger security [OK]
- Thinking 2FA replaces passwords
- Relying on weak passwords with 2FA
- Ignoring multi-layer security benefits
