Home > Blog > ISC2 Certified Information Systems Security Professional > Password Hashing vs Encryption: CISSP Study Guide

Password Hashing vs Encryption: CISSP Study Guide

Comparison Cert Sensei Team 2029-03-24 8 min read

Password hashing is a one-way cryptographic function used to store passwords securely, ensuring the original plaintext cannot be recovered. Encryption is a two-way process designed for data confidentiality, allowing decryption with a key. For the CISSP exam, remember: passwords should always be hashed and salted, never encrypted.

#CISSP #Password Hashing #Cryptography #ISC2 #Cybersecurity

Why do you need to distinguish between hashing and encryption for the CISSP?

If you're diving into Domain 3 (Security Architecture and Engineering), you'll quickly realize that ISC2 loves to test your ability to pick the right tool for the specific job. Confusing hashing with encryption is one of the most common traps candidates fall into. While both transform data into an unreadable format, their fundamental purposes are polar opposites.

Encryption is designed for confidentiality during transit or storage where the original data must eventually be recovered. Hashing, however, is designed for integrity and verification. In a password scenario, the system doesn't actually need to know your password; it only needs to know that the password you just entered produces the same hash as the one stored in the database. If you encrypt passwords, you've created a single point of failure: the decryption key.

Is hashing really 'one-way' compared to encryption?

Think of encryption like a locked safe. You put a document inside, lock it with a key, and as long as you have that key, you can get the original document back. This is two-way communication. In contrast, hashing is like putting a piece of fruit into a high-powered blender. You can turn the fruit into a smoothie (the hash), but no matter how hard you try, you cannot turn that smoothie back into the original piece of fruit.

From a technical standpoint, a hash function takes an input of any size and produces a fixed-length string called a digest. Because it is a one-way function, there is no 'decryption key' for a hash. If an attacker steals a database of hashed passwords, they can't simply 'decrypt' them; they have to guess the password, hash that guess, and see if the digests match. This fundamental difference is why hashing is the only acceptable standard for password storage.

How does salting stop Rainbow Table attacks?

You've probably heard the term 'Rainbow Table.' These are essentially massive cheat sheets of pre-computed hashes for millions of common passwords. If an attacker has a list of hashes and a Rainbow Table, they can perform a simple lookup to find the plaintext password in milliseconds. This is where salting comes into play.

Salting involves adding a unique, random string of characters to the password before it is hashed. Instead of hashing 'Password123', the system hashes 'Password123+z8yT2q'. Because the salt is unique for every single user, two people with the same password will have completely different hashes in the database. This renders Rainbow Tables useless because the attacker would have to generate a new table for every single unique salt, which is computationally impossible for any significant number of users.

What is the technical difference between a salt and a pepper?

This is a nuance that often separates the passing candidates from the experts. A salt is stored in the database right next to the hash. It doesn't need to be secret; its only job is to ensure uniqueness. However, if an attacker gains full access to your database, they have both the hash and the salt, allowing them to start a targeted brute-force attack on each individual account.

A 'pepper' is a secret value added to the password, but unlike the salt, the pepper is stored outside the database—usually in a secure configuration file or a Hardware Security Module (HSM). If the database is leaked, the attacker still lacks the pepper, meaning they cannot even begin the hashing process to guess passwords. While salting protects against pre-computation, peppering protects against database leaks, adding a critical layer of defense-in-depth.

Why are 'slow' hashing algorithms like bcrypt and Argon2 preferred?

In most of IT, 'fast' is good. In password hashing, 'fast' is a vulnerability. Algorithms like MD5 and SHA-1 are incredibly efficient, which is great for checking file integrity but terrible for passwords. A modern GPU can attempt billions of MD5 hashes per second, making brute-force attacks trivial.

To counter this, we use 'slow' or 'adaptive' hashing algorithms like bcrypt, scrypt, and Argon2. These algorithms incorporate a 'work factor' or 'cost factor' that intentionally slows down the hashing process and increases the memory required. By making a single hash take 100 milliseconds instead of 1 microsecond, you don't noticeably affect the user logging in, but you make it mathematically impossible for an attacker to try billions of combinations. Argon2 is currently considered the gold standard as it provides resistance against GPU-based cracking.

How can you master these concepts for the actual exam?

Understanding the theory is one thing, but applying it to the tricky, scenario-based questions on the CISSP is where most students struggle. You need to be able to identify whether a scenario is asking for confidentiality (encryption) or integrity/verification (hashing) under pressure.

This is exactly why we built Cert Sensei. We provide 1,000 expert-curated ISC2 CISSP practice questions that mimic the actual exam's complexity. Instead of just giving you a correct answer, we provide detailed expert reasoning for every single option, helping you understand the 'why' behind the answer. Plus, our domain-level analytics will show you exactly how you're performing in Domain 3, so you can stop wasting time on what you know and focus on the gaps in your knowledge.

❓ Frequently Asked Questions

Is SHA-256 a safe choice for password storage?

No. While SHA-256 is a secure hashing algorithm for data integrity, it is too fast for password storage. Attackers can use specialized hardware to guess millions of SHA-256 hashes per second. For passwords, always use adaptive algorithms like bcrypt or Argon2.


If I lose the encryption key for encrypted passwords, can I recover them?

Yes, provided you have a backup of the key. However, if you use hashing and 'lose' the salt or pepper, you cannot recover the passwords. This is why passwords must be reset rather than recovered in a properly secured system.


Does salting protect against collision attacks?

No. Salting is specifically designed to prevent pre-computation attacks (Rainbow Tables) and ensure that identical passwords produce different hashes. Collision attacks, where two different inputs produce the same hash, are a weakness of the algorithm itself, not the lack of a salt.

More from ISC2 Certified Information Systems Security Professional

🧠

Test Your Knowledge

Ready to practice Certified Information Systems Security Professional? Put what you've learned to the test.

Try 10 Free Questions

⭐ 1,000 expert-curated questions available with Premium

Upgrade Premium
📖 Browse the Glossary

Join thousands of certification students

Sign Up Free