HMAC Generator
HMAC adalah algoritma di balik sebagian besar webhook bertanda tangan, header AWS Signature v4, dan token JWT HS256. Masukkan pesan dan kunci rahasia, pilih keluarga hash, dan generator ini menghasilkan HMAC persis sebagaimana ditentukan RFC 2104, berguna untuk memverifikasi apa yang akan dikirim backend Anda, atau mereproduksi tanda tangan yang Anda terima dari API.
Cara menghitung HMAC
-
1
Tempel pesan
Byte tepat yang akan ditandatangani: payload webhook, request kanonis, atau string apa pun.
-
2
Masukkan secret key
Bisa teks atau hex. Generator mem-pad atau meng-hash-nya ke ukuran blok sesuai RFC.
-
3
Pilih algoritma hash
SHA-256 adalah default; pilih SHA-1, SHA-384, SHA-512, atau MD5 untuk kompatibilitas lawas.
-
4
Salin tanda tangan
Output berupa hex huruf kecil, siap ditempel ke konfigurasi webhook atau header Authorization.
HMAC di balik layar
HMAC membungkus fungsi hash biasa dalam konstruksi keyed sehingga tanda tangan tidak bisa dipalsukan tanpa key.
Resep RFC 2104
HMAC(k, m) = H((k' ⊕ opad) ∥ H((k' ⊕ ipad) ∥ m))
di mana k' adalah key yang di-pad ke ukuran blok hash, opad = 0x5c diulang, dan ipad = 0x36 diulang.
Pilihan algoritma
| Algoritma | Ukuran blok | Panjang output | Direkomendasikan untuk |
|---|---|---|---|
| HMAC-SHA-256 | 64 byte | 32 byte | Default modern, penandatanganan webhook |
| HMAC-SHA-384 | 128 byte | 48 byte | Penandatanganan API keamanan lebih tinggi |
| HMAC-SHA-512 | 128 byte | 64 byte | Token berumur panjang |
| HMAC-SHA-1 | 64 byte | 20 byte | Lawas (AWS S3 v2, OAuth 1.0) |
| HMAC-MD5 | 64 byte | 16 byte | Hanya lawas; hindari untuk kerja baru |
Di mana HMAC muncul
- Webhook GitHub, Stripe, Shopify: header
X-Hub-Signature-256,Stripe-Signature, dll. - AWS Signature v4: rantai HMAC-SHA256 atas request kanonis.
- JWT HS256: tanda tangan token adalah
HMAC-SHA-256(header.payload, secret). - Token reset password: HMAC atas user_id + kedaluwarsa + secret situs.
Kesalahan umum
- Mengirim key ber-encode hex sebagai teks alih-alih men-decode-nya ke byte dulu.
- Menandatangani byte payload yang salah: beberapa webhook menandatangani body request mentah termasuk spasi, yang lain menandatangani bentuk kanonis.
- Memakai
==di JavaScript atau Python untuk membandingkan tanda tangan; selalu pakai perbandingan timing-safe untuk menahan serangan timing.
Pertanyaan yang Sering Diajukan
Hampir selalu karena byte pesan berbeda. Menandatangani body yang sudah di-parse JSON memunculkan perubahan spasi; tandatangani body request mentah. Verifikasi juga key di-decode dengan cara sama (hex vs byte mentah) di kedua sisi.
Ya. Jika key lebih pendek dari ukuran blok hash ia di-pad nol; jika lebih panjang, ia di-hash dulu. RFC 2104 merekomendasikan key setidaknya sepanjang output (32 byte untuk SHA-256).
HMAC masih tahan terhadap serangan collision MD5 yang diketahui karena serangan itu tidak berlaku pada konstruksi HMAC. Tetap saja, gunakan HMAC-SHA-256 untuk kode baru mana pun, tooling dan auditor mengharapkannya.
Ya. Pesan dan kunci rahasia dikirim ke server kami melalui koneksi HTTPS terenkripsi agar HMAC dapat dihitung. Keduanya hanya dipakai untuk perhitungan dan tidak disimpan atau dicatat.
Alat Terkait
Penghasil API Kunci Acak
Buat kunci API 8–128 karakter di server dalam format hex, base64url, atau alfanumerik, atau buat UUIDv4.
Enkoder sandi Polybius
Ubah huruf Latin menjadi koordinat Polybius atau dekode pasangan berjarak dengan kisi I/J tetap 5×5.
Pemeriksa Kekuatan Kata Sandi
Periksa kekuatan kata sandi di browser Anda: panjang, ragam karakter, entropi dalam bit, dan perkiraan kasar waktu retas. Tidak ada yang diunggah.
Generator SHA256
Buat hash SHA-256 dari teks apa pun. Output heksadesimal 64 karakter, algoritma yang sama di balik alamat Bitcoin, sertifikat TLS, dan tanda tangan JWT.
Identifikasi Enkripsi
Tempel teks rahasia atau hasil hash-nya; identifikator tersebut akan menunjukkan algoritma atau format enkoding yang kemungkinan digunakan, seperti MD5, SHA, bcrypt, AES, RSA, Base64, dan lainnya.
Sandi Angka ke Huruf
Ubah angka menjadi huruf dan sebaliknya dengan sandi A=1, B=2 (A1Z26) untuk teka-teki, tebak-tebakan, dan petunjuk escape room.
Alat ini tersedia dalam bahasa lain
- HMAC-generator [SV]
- HMAC-generator [NL]
- ตัวสร้าง HMAC [TH]
- HMAC 생성기 [KO]
- مولّد HMAC [AR]
- Gerador de HMAC [PT]
- Bộ tạo HMAC [VI]
- Generator HMAC [PL]
- HMAC-Generator [DE]
- HMACジェネレーター [JA]
- Generador de HMAC [ES]
- Générateur HMAC [FR]
- HMAC Generator [EN]
- Generatore HMAC [IT]
- Генератор HMAC [RU]
- HMAC Jeneratörü [TR]
- HMAC 生成器 [ZH]