Apa itu HMAC?
HMAC (Hash-based Message Authentication Code) adalah mekanisme kriptografi yang menggabungkan kunci rahasia dengan fungsi hash untuk menghasilkan kode autentikasi. Ini menyediakan integritas data dan autentikasi — memastikan bahwa pesan tidak telah dimanipulasi dan dikirim oleh seseorang yang mengetahui kunci rahasia.
Kasus Penggunaan Umum
Verifikasi Webhook
Autentikasi API
Penandatanganan JWT
Integritas Pesan
Cara Kerja HMAC
HMAC mengambil dua input — kunci rahasia dan pesan — dan menjalankannya melalui fungsi hash (seperti SHA-256) dengan cara khusus yang membuat sangat sulit untuk memalsukan tanpa mengetahui kunci.
HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m))
Di mana:
Hadalah fungsi hash (misalnya, SHA-256)Kadalah kunci rahasiamadalah pesan untuk diautentikasiopaddanipadadalah konstanta padding yang memastikan keamanan
- 1. Apa itu HMAC?
- 2. Cara Menggunakan Pembuat HMAC Ini
- 3. Fitur
- 4. Pertanyaan yang Sering Diajukan
- 4.1. Algoritma HMAC mana yang harus saya gunakan?
- 4.2. Mengapa MD5 dan SHA-1 ditandai sebagai tidak aman?
- 4.3. Apa perbedaan antara output Hex dan Base64?
- 4.4. Kapan saya harus menggunakan tipe input Hex atau Base64 untuk kunci?
- 4.5. Bagaimana cara memverifikasi tanda tangan webhook?
- 4.6. Apakah data saya aman?
Cara Menggunakan Pembuat HMAC Ini
Pilih Algoritma
Pilih algoritma HMAC Anda dari menu dropdown. SHA-256 dipilih secara default dan direkomendasikan untuk sebagian besar kasus penggunaan. MD5 dan SHA-1 tersedia untuk kompatibilitas warisan tetapi ditandai sebagai tidak aman.
Masukkan Kunci Rahasia Anda
Ketik atau tempel kunci rahasia Anda di bidang input kunci. Jika kunci Anda dalam format biner, gunakan pemilih tipe input untuk beralih antara encoding String, Hex, atau Base64.
Masukkan Pesan Anda
Masukkan pesan yang ingin Anda autentikasi. Seperti kunci, Anda dapat mengubah tipe input jika pesan Anda dikodekan hex atau base64.
Dapatkan HMAC Anda
HMAC dihasilkan secara otomatis saat Anda mengetik. Output Hex dan Base64 ditampilkan secara bersamaan. Klik tombol salin di sebelah output mana pun untuk menyalinnya ke papan klip Anda.
Memverifikasi HMAC
Untuk membandingkan HMAC yang dihasilkan dengan nilai yang diharapkan, aktifkan kotak centang Verifikasi HMAC. Tempel HMAC yang diharapkan — alat ini menerima format hex dan base64 dan menampilkan lencana Cocok atau Tidak Cocok secara instan.
Fitur
8 Algoritma HMAC
Hasilkan kode HMAC dengan berbagai algoritma hash untuk memenuhi persyaratan integrasi apa pun:
SHA-256 Direkomendasikan
Pilihan standar untuk webhook, API, dan JWT (HS256). Menyediakan keamanan yang sangat baik dengan output 256-bit.
SHA-512
Keamanan lebih tinggi dengan output 512-bit. Ideal untuk aplikasi yang memerlukan kekuatan kriptografi maksimal.
SHA-384 & SHA-224
Varian SHA-2 alternatif yang menawarkan output 384-bit dan 224-bit untuk persyaratan keamanan spesifik.
SHA3-256 & SHA3-512
Algoritma SHA-3 generasi terbaru berdasarkan algoritma Keccak, menawarkan standar kriptografi modern.
Format Input Fleksibel
Baik kunci rahasia maupun pesan menerima tiga tipe input, penting saat bekerja dengan kunci biner dari API atau debugging ketidakcocokan encoding:
String (UTF-8)
Hex
Base64
Tampilan Output Ganda
Lihat representasi Hex dan Base64 dari HMAC Anda pada saat yang sama — tidak perlu beralih. Toggle huruf besar memungkinkan Anda mengubah output hex antara huruf kecil dan huruf besar.
Format Heksadesimal
- Representasi lebih panjang
- Lebih mudah dibaca dan di-debug
- Dua karakter per byte
- Toggle huruf besar/kecil
Format Base64
- 33% lebih kompak
- Umum di header HTTP
- Digunakan dalam token JWT
- Varian aman URL tersedia
Verifikasi HMAC
Mode verifikasi bawaan memungkinkan Anda menempel nilai HMAC yang diharapkan dan langsung melihat apakah cocok dengan output yang dihasilkan. Ini mendukung format hex dan base64 dan menormalkan spasi dan huruf untuk perbandingan hex.
Validasi Instan
Perbandingan real-time dengan lencana Cocok/Tidak Cocok saat Anda mengetik.
Fleksibilitas Format
Menerima format input hex dan base64 secara otomatis.
Normalisasi Cerdas
Menangani perbedaan spasi dan huruf dalam nilai hex.
Data Anda Tetap Pribadi
Semua komputasi HMAC terjadi sepenuhnya di browser Anda menggunakan perpustakaan CryptoJS:
- Tidak ada unggahan — Kunci rahasia dan pesan Anda tidak pernah meninggalkan perangkat Anda
- Tidak ada pemrosesan server — Semuanya berjalan sisi klien dalam JavaScript
- Tidak ada pelacakan — Kami tidak mencatat atau menyimpan data input apa pun
- Mampu offline — Bekerja tanpa koneksi internet setelah dimuat
Pertanyaan yang Sering Diajukan
Algoritma HMAC mana yang harus saya gunakan?
SHA-256 adalah yang paling banyak digunakan dan direkomendasikan untuk sebagian besar aplikasi. Ini digunakan oleh webhook Stripe, GitHub, Shopify, dan tanda tangan API AWS. Gunakan SHA-512 jika Anda memerlukan keamanan lebih tinggi, atau varian SHA3 untuk standar terbaru.
Mengapa MD5 dan SHA-1 ditandai sebagai tidak aman?
MD5 dan SHA-1 memiliki kelemahan kriptografi yang diketahui — serangan tabrakan telah ditunjukkan untuk keduanya. Meskipun HMAC-MD5 dan HMAC-SHA1 masih dianggap aman dalam beberapa konteks (konstruksi HMAC menambah keamanan), praktik terbaik adalah menggunakan SHA-256 atau lebih tinggi untuk implementasi baru.
Apa perbedaan antara output Hex dan Base64?
Hex mewakili setiap byte sebagai dua karakter heksadesimal (0-9, a-f). Lebih panjang tetapi lebih mudah dibaca dan di-debug. Base64 lebih kompak (sekitar 33% lebih pendek) dan umum digunakan di header HTTP dan JWT. Pilih format mana pun yang diharapkan API atau layanan Anda.
| Format | Panjang | Penggunaan Umum | Keterbacaan |
|---|---|---|---|
| Hex | 64 karakter (SHA-256) | Debugging, log | Tinggi |
| Base64 | 44 karakter (SHA-256) | Header HTTP, JWT | Sedang |
Kapan saya harus menggunakan tipe input Hex atau Base64 untuk kunci?
Jika kunci rahasia Anda disediakan sebagai string hex (misalnya, dari dasbor API yang menampilkan byte mentah) atau string base64, pilih tipe input yang cocok sehingga alat ini menafsirkan data biner dengan benar. Sebagian besar waktu, "String" (UTF-8) adalah pilihan yang tepat.
- String (UTF-8) — Gunakan untuk kata sandi teks biasa dan kunci API seperti "my_secret_key_123"
- Hex — Gunakan ketika kunci Anda terlihat seperti "a3f5b2c8d1e4..." (byte heksadesimal)
- Base64 — Gunakan ketika kunci Anda terlihat seperti "SGVsbG8gV29ybGQ=" (base64-encoded)
Bagaimana cara memverifikasi tanda tangan webhook?
Masukkan rahasia penandatanganan webhook sebagai kunci, tempel badan permintaan mentah sebagai pesan, pilih algoritma yang digunakan layanan Anda (biasanya SHA-256), kemudian aktifkan Verifikasi HMAC dan tempel tanda tangan dari header webhook untuk memeriksa apakah cocok.
Dapatkan Rahasia
Salin rahasia penandatanganan dari dasbor layanan
Badan Mentah
Tempel badan permintaan yang tepat
Verifikasi
Bandingkan dengan tanda tangan header
Apakah data saya aman?
Ya. Semua komputasi HMAC berjalan sepenuhnya di browser Anda — tidak ada data yang dikirim ke server mana pun. Kunci rahasia dan pesan Anda tetap di perangkat Anda setiap saat.
Belum ada komentar. Jadilah yang pertama berkomentar!