Generator HMAC

Hitung HMAC-SHA256, SHA-384, SHA-512, SHA-224, SHA-1, MD5, SHA3, atau RIPEMD-160 dari pesan dengan kunci teks, hex, atau Base64. Output hex atau Base64, langsung.

HMAC (RFC 2104) mencampurkan kunci ke dalam hash dua kali: H((K ⊕ opad) || H((K ⊕ ipad) || message)). Kunci yang lebih panjang dari blok hash di-hash dulu. Bandingkan MAC dalam waktu konstan di server.

Apa itu Generator HMAC?

Menghitung kode autentikasi pesan berbasis hash dengan kunci (HMAC, RFC 2104) untuk sebuah pesan dan kunci rahasia. Alat ini mendukung SHA-2, SHA-3, SHA-1, MD5, dan RIPEMD-160, kunci dalam bentuk teks, hex, atau Base64, dan menampilkan MAC dalam hex huruf kecil/besar atau Base64 saat Anda mengetik.

Cara menggunakan Generator HMAC

  1. Ketik Pesan (teks, atau ubah encoding ke Hex untuk byte mentah).
  2. Masukkan Kunci rahasia dan pilih apakah berupa teks (UTF-8), Hex, atau Base64.
  3. Pilih Algoritme, mis. HMAC-SHA-256.
  4. Pilih Format output lalu salin HMAC-nya.

Contoh

Masukan
Message "what do ya want for nothing?", key "Jefe", HMAC-SHA-256
Keluaran
5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843

Test case 2 dari RFC 4231.

Kapan menggunakan Generator HMAC

Gunakan untuk memverifikasi signature webhook (Stripe, GitHub, Shopify, Slack), menandatangani request API, men-debug langkah penandatanganan gaya AWS, atau memeriksa test vector HMAC. Alat ini tidak cocok untuk meng-hash kata sandi (gunakan bcrypt atau Argon2) dan bukan tanda tangan digital: siapa pun yang memiliki kunci bisa membuat MAC-nya.

Cara kerja Generator HMAC

HMAC(K, m) = H((K′ ⊕ opad) ‖ H((K′ ⊕ ipad) ‖ m)), di mana K′ adalah kunci yang di-padding nol hingga ukuran blok hash (kunci yang lebih panjang dari blok di-hash terlebih dahulu), ipad = 0x36 dan opad = 0x5C yang diulang. Konstruksi ini tetap aman bahkan untuk hash seperti MD5 dan SHA-1 yang ketahanan collision-nya sudah jebol. Digest berasal dari hash-wasm, dan hasilnya cocok dengan test vector RFC 4231 dan RFC 2202.

Kasus Penggunaan Umum

  • Memverifikasi signature webhook GitHub X-Hub-Signature-256 atau Stripe
  • Mereproduksi signature request API saat debugging
  • Memeriksa test vector HMAC dari RFC 4231
  • Membuat nilai HMAC-SHA1 untuk debugging OAuth 1.0 lawas atau TOTP
  • Membandingkan output antara dua bahasa yang hasilnya berbeda

Catatan Keamanan

Kunci dan pesan tetap berada di browser Anda. Bandingkan MAC di server dengan fungsi constant-time untuk menghindari serangan timing.

Pertanyaan Umum

Mengapa HMAC saya tidak cocok dengan header webhook?

Pastikan Anda meng-hash body request mentah byte demi byte (bukan JSON yang sudah diformat ulang), memakai secret yang tepat (beberapa penyedia memberikannya dalam Base64 atau dengan prefiks seperti whsec_), dan encoding output yang diharapkan – GitHub memakai hex, Shopify memakai Base64.

Apakah HMAC-SHA1 atau HMAC-MD5 masih aman?

Sebagai MAC, keduanya belum memiliki pembobolan praktis, karena HMAC tidak bergantung pada ketahanan collision. Keduanya dianggap lawas; gunakan HMAC-SHA-256 atau yang lebih kuat untuk sistem baru.

Bolehkah kuncinya kosong?

RFC 2104 mengizinkannya dan alat ini tetap menghitungnya, tetapi kunci kosong tidak memberikan keamanan apa pun.

Apakah HMAC sama dengan meng-hash kunci + pesan?

Tidak. hash(key + message) biasa rentan terhadap serangan length extension pada SHA-2; hashing ganda pada HMAC mencegah hal itu.

Langkah berikutnya yang disarankan

Jelajahi kategori lainnya