What is HMAC (and why SHA-256 alone isn't enough)?

HMAC is how you prove a message wasn't tampered with. It's SHA-256 plus a clever wrapping you should never try to reinvent.