HMAC Explained: Keyed Hash Authentication Codes