HMAC (Hash-based Message Authentication Code) adalah teknologi autentikasi pesan yang banyak digunakan dan didefinisikan dalam RFC 2104. HMAC memproses key bersama pesan melalui fungsi hash untuk menghasilkan signature dengan panjang tetap. Berbeda dari hash biasa, HMAC membutuhkan key untuk membuat atau memverifikasi signature, sehingga dapat memastikan integritas sekaligus keaslian pesan.
**HMAC adalah salah satu fondasi keamanan API modern**. Stripe, GitHub, Shopify, Slack, dan Twilio memakai HMAC-SHA256 untuk menandatangani event webhook, sehingga penerima dapat memastikan request benar-benar berasal dari platform tersebut. AWS juga memakai HMAC-SHA256 untuk request signing Signature V4. Algoritma HS256 pada JWT pada dasarnya adalah HMAC-SHA256. Memahami HMAC adalah langkah awal yang penting untuk menguasai keamanan API.
**Setiap platform memiliki format signature yang berbeda**: Stripe menggunakan `t=timestamp,v1=hex_signature` dan menandatangani `timestamp.payload`; GitHub memakai `X-Hub-Signature-256` dengan format `sha256=hex_signature`; Shopify mengirim `X-Shopify-Hmac-Sha256` sebagai nilai Base64-encoded. Tool ini dapat melakukan parsing dan verifikasi otomatis untuk format-format umum tersebut.
**Mengapa verifikasi signature bisa gagal?** Penyebab paling sering adalah format pesan yang tidak sama: platform mungkin menandatangani `timestamp.payload` alih-alih body pesan mentah; pesan bisa berisi baris baru tambahan; atau signature mungkin menyertakan prefix seperti `sha256=` yang harus dihapus. Periksa dokumentasi platform dengan teliti dan bandingkan memakai nilai hexadecimal mentah.
Tool ini menggunakan **Web Crypto API** bawaan browser (SubtleCrypto) untuk perhitungan HMAC, basis kriptografi yang juga digunakan oleh HTTPS dan TLS. Semua komputasi berjalan lokal; key dan pesan tidak pernah dikirim ke server mana pun. Buka panel Network di DevTools browser untuk memastikan tidak ada request eksternal yang dibuat.