Hash/Kripto
HMAC Generator
Menghitung HMAC (Hash-based Message Authentication Code) dari teks atau file dengan kunci rahasia — sekaligus delapan algoritma: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.
HMAC (Hash-based Message Authentication Code) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.
How to use it
- Enter text or a file and a secret key — the HMAC is computed instantly with eight algorithms at once (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Copy the variant you need to verify a signature or compare against an expected value.
- The same input and key always produce the same HMAC — handy for checking against a signature received from another system.
Common uses
- Verifying a webhook signature from a payment service or API (most sign the payload with HMAC-SHA256).
- Generating a request signature for an API that requires HMAC authentication.
- Debugging a mismatched signature — checking the key, input encoding, and algorithm one at a time.
Things to keep in mind
HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.
A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.
Artikel tentang alat ini: HMAC: apa bedanya hash dengan kunci dan hash biasa
Pertanyaan yang sering diajukan
Apa perbedaan antara HMAC dan hash biasa?
Hash biasa hanya membuktikan bahwa data tidak diubah; HMAC juga menggunakan kunci rahasia, sehingga membuktikan integritas sekaligus bahwa pengirim mengetahui rahasia bersama — tanpa kunci, seseorang tidak bisa menghasilkan HMAC yang valid meski tahu algoritmanya.
Algoritma hash mana yang harus saya pilih untuk HMAC?
HMAC-SHA256 adalah default modern yang solid. Pilihan lama seperti HMAC-MD5 atau HMAC-SHA1 secara khusus sebagai HMAC belum dipatahkan, tetapi SHA-256 atau lebih kuat direkomendasikan untuk sistem baru.
Apakah kunci rahasia saya dikirim ke suatu tempat?
Tidak. HMAC dihitung sepenuhnya di browser Anda melalui Web Crypto API — kunci dan pesan tidak pernah meninggalkan perangkat Anda.
Mengapa HMAC tidak boleh dibandingkan dengan operator kesetaraan biasa?
Perbandingan string biasa berhenti pada perbedaan pertama, dan waktu eksekusinya membocorkan kepada penyerang berapa banyak karakter awal yang berhasil ditebak dengan benar (timing attack). Diperlukan fungsi perbandingan waktu konstan, misalnya hash_equals di PHP.
Bolehkah kunci yang sama digunakan untuk beberapa tujuan berbeda?
Tidak disarankan. Jika kunci rahasia yang sama digunakan baik untuk menandatangani webhook maupun tujuan lain, kompromi pada satu sistem otomatis mengompromikan sistem lainnya — sebaiknya buat kunci terpisah untuk setiap tujuan.