HMAC: xác thực toàn vẹn kèm khóa bí mật — và vì sao đừng tự chế bằng SHA(key+msg)
Hash trần chỉ chống lỗi ngẫu nhiên, không chống kẻ địch: ai cũng sửa thông điệp rồi tính lại hash. HMAC trộn một khóa bí mật vào hàm băm nên chỉ người có khóa mới tạo được mã đúng. Bài này đo thật bằng openssl: sai khóa hay sửa một chữ số đều làm HMAC khác hẳn, và vì sao SHA256(key+msg) tự chế dính length-extension attack.