Hashing — one-way transformation. Both symmetric and asymmetric concepts apply.
Symmetric Hashing:
HMAC:
Sender: HMAC(message, secret_key) → hash
Receiver: HMAC(message, secret_key) → verify
(Same key both sides)
Asymmetric Hashing:
Digital Signature:
Sender: Sign(message, private_key) → signature
Receiver: Verify(message, signature, public_key)
(Different keys)
Key differences: