Cryptographic hashing helps protect passwords, messages, files, and other digital information. SHA, which stands for Secure Hash Algorithm, is a family of cryptographic hash functions used for security tasks such as digital signatures, password storage, secure communications, and checking data integrity. A useful memory connection is: security hash family = SHA. When data needs to be checked to see whether it has changed, a cryptographic hash creates a digital fingerprint that can help detect that change.
HMAC combines a cryptographic hash function with a secret key. This provides a way to verify both the authenticity and integrity of a message. An easy memory connection is: hash plus secret key = HMAC. Integrity asks whether the information changed, while authenticity helps confirm that the information came from someone possessing the correct secret key. This makes HMAC useful when systems need more than a basic hash.
Password protection introduces another important concept: salt. A salt is extra pseudo-random data added to a password before the password is hashed. Salting makes identical passwords produce different stored hashes and helps defeat precomputed attacks such as rainbow tables. The memory connections are simple: extra data added before password hashing = salt, and rainbow-table defense = salting. Salt changes what enters the hash, making previously calculated password tables far less useful to an attacker.
Leave a comment