According NIST requirements, secrets must be salted and hashed
Meaning
Reversible
Limitation
One-way Hashing
Converting credential into fixed-length hash value
❌
- multiple credentials can have the same hash value; which is also good because adversary cannot easily get the credential even with hashes - multiple people can have the same credential and hence, the same hash - adversary will use this information to find patterns between the people and crack the credentials
Salting
Private key perturbs the hash value
N/A
Encryption
✅
The hashing algorithm need not be private; reputed hashing functions are nearly impossible to reverse-engineer
Adversaries may have already hashed all the words in the dictionary
But very unlikely for reputed hashing functions
If an online service directly emails your password - that means they know your password, and hence it is stored unencrypted - do not use that service anymore