hardMultiple ChoiceObjective-mapped
CISSP Practice Question: Uses a custom application that stores user…
An organization uses a custom application that stores user passwords using salted SHA-256 hashes. During a security audit, the auditor recommends migrating to a more secure password storage mechanism. Which of the following is the best recommendation?
⚠ Common exam trap
Candidates often confuse 'encryption' (reversible) with 'hashing' (one-way) and mistakenly choose AES-256 or database encryption, failing to recognize that password storage must use a slow, salted, one-way hashing algorithm specifically designed for credential protection.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Use bcrypt with a cost factor of 12
bcrypt is a deliberately slow, adaptive password hashing function that includes a built-in salt and a configurable cost factor. A cost factor of 12 makes each hash computation computationally expensive, effectively thwarting brute-force and GPU-based attacks. Unlike SHA-256, which is designed for speed and can be cracked rapidly with modern hardware, bcrypt's design inherently resists parallelization and ASIC/GPU acceleration.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Use plaintext with database encryption
Why it's wrong here
Storing passwords in plaintext, even within an encrypted database, is fundamentally insecure. While database encryption protects data at rest from unauthorized physical access, it offers no protection if the database server or the application accessing it is compromised. An attacker gaining access to the database or application memory would immediately retrieve all user credentials without needing to decrypt them, leading to widespread account compromise.
- ✗
Use AES-256 encryption for passwords
Why it's wrong here
Using AES-256 encryption for passwords is inappropriate because encryption is a reversible process. While AES provides strong confidentiality, it requires a decryption key, which, if compromised, would allow an attacker to recover all original user passwords. Secure password storage mandates the use of irreversible cryptographic hashing functions, ensuring that even if the stored password representations are stolen, the actual passwords cannot be retrieved.
- ✓
Use bcrypt with a cost factor of 12
Why this is correct
Bcrypt is an excellent choice for password storage because it is a deliberately slow, adaptive hashing algorithm designed to resist brute-force and rainbow table attacks. Its "cost factor" (or work factor) parameter, set at 12 in this case, controls the computational difficulty, making it expensive for attackers to test many passwords per second. This inherent slowness, combined with built-in salting, significantly enhances the security of stored passwords against modern cracking techniques, including those utilizing GPUs.
- ✗
Use MD5 with a salt
Why it's wrong here
MD5 is cryptographically broken and entirely unsuitable for secure password hashing, even when combined with a salt. It is extremely fast to compute, making it highly susceptible to brute-force attacks, especially with modern hardware and GPU acceleration. Furthermore, MD5 is known to have significant collision vulnerabilities, which means different inputs can produce the same hash output, further compromising its integrity for security purposes.
- ✗
Use PBKDF2 with 10,000 iterations
Why it's wrong here
While PBKDF2 is a strong Password-Based Key Derivation Function that uses iterations to increase computational cost against brute-force attacks, it is generally considered less resistant to modern GPU-based cracking than bcrypt. PBKDF2's design is primarily CPU-bound and not memory-hard, making it more efficient for attackers to parallelize on Graphics Processing Units. A higher iteration count like 10,000 improves security, but bcrypt's memory-hardness provides a superior defense against specialized password cracking hardware.
Go deeper
Related to this question
Learn chapter
Security Governance and Principles
Key term
Audit
An audit is a systematic, independent review of IT systems, processes, and controls to verify compliance with policies, standards, and regulations.
Key term
Hashing
Hashing is a one-way mathematical function that converts any input data into a fixed-length string of characters, called a hash or digest, which is used to verify data integrity and store passwords securely.
About these practice questions
Courseiva writes every CISSP question from scratch — 747 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CISSP practice question is part of Courseiva's free ISC2 certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CISSP exam.