Cryptography Crash Course
A practical tour of the cryptography most engineers actually use — symmetric and public-key, TLS, password storage, and the auth flows on top.
- Reading time
- ~28 min (+15 min optional)
- Level mix
- 1 beginner · 8 intermediate
You don’t need to invent cryptography to ship secure software, but you do need to know which tool answers which question. This path covers the toolkit (symmetric and public-key crypto), the protocol that makes the web safe (TLS), how to store passwords without making a future breach catastrophic, and how authn and authz fit together on top.
Aim: by the end, the questions “how should we hash these passwords?” and “is TLS enough for service-to-service auth?” should have obvious answers.
Roadmap
Loading progress...
The math
The science of keeping information secret and verifying it has not been tampered with — built from math and careful engineering.
Cryptography using a pair of mathematically linked keys — one you share, one you keep secret. The basis of TLS, signatures, and modern authentication.
In use on the wire
The protocol that encrypts and authenticates almost all secure traffic on the internet — the "S" in HTTPS, IMAPS, SMTPS, and many more.
- HTTPSOptional
HTTP wrapped in TLS — the encrypted, authenticated version of the web's core protocol, now the default for every public site.
Storing secrets
One-way, deliberately slow transformations of a password used so that a database breach doesn't reveal the originals.
Identity and access
Proving *who* a user is — by something they know (password), have (token, phone), or are (biometric).
Deciding *what* an authenticated user is allowed to do — the system of permissions, roles, and policies that protects resources.
- OAuthOptional
A standard for delegated authorization — letting an app act on a user's behalf at another service without ever seeing the user's password.
Common pitfalls
- CSRFOptional
A vulnerability where an attacker tricks the victim's browser into making a state-changing request to a site the victim is logged into.