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

Common uses

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.

Artikel: Hash/Kripto

Hash Generator: apa perbedaan MD5, SHA-1, dan SHA-256

Mengapa MD5 masih digunakan untuk memverifikasi integritas file, tapi tidak untuk kata sandi.

Checksum Verifier: cara memeriksa apakah file tidak rusak

Mengapa checksum yang cocok mengonfirmasi integritas file, tapi bukan siapa yang membuatnya.

Bcrypt: mengapa kata sandi di-hash secara lambat, bukan cepat

Mengapa SHA-256 yang cepat adalah pilihan buruk untuk kata sandi, dan bcrypt yang lambat adalah pilihan yang tepat.

UUID: bagaimana identifier yang hampir tidak pernah berulang dibuat

Mengapa UUID v4 bisa dibuat secara independen di jutaan mesin tanpa risiko tabrakan.

Generator Kata Sandi: apa yang sebenarnya membuat kata sandi kuat

Mengapa kata sandi panjang dari kata-kata kamus lebih kuat daripada kata sandi pendek dengan simbol dan angka.

AES: bagaimana enkripsi simetris bekerja

Mengapa kunci yang sama mengenkripsi dan mendekripsi data di AES, dan bagaimana ini berbeda dari enkripsi asimetris.

Argon2: mengapa algoritma ini memenangkan kompetisi hashing kata sandi

Bagaimana Argon2 bertahan lebih baik terhadap serangan menggunakan GPU dibandingkan algoritma hashing kata sandi yang lebih lama.

Scrypt: mengapa algoritma ini membutuhkan begitu banyak memori

Mengapa scrypt sengaja membutuhkan banyak memori untuk mempersulit pembobolan di perangkat ASIC.

TOTP: bagaimana kode sekali pakai di aplikasi autentikator bekerja

Mengapa kode di Google Authenticator bekerja tanpa internet dan hanya sinkron dengan server melalui waktu.

PBKDF2: standar peregangan kunci tertua

Mengapa jumlah iterasi PBKDF2 yang direkomendasikan terus bertambah setiap tahun.

X.509: apa yang ada di dalam sertifikat SSL

Apa sebenarnya yang diperiksa browser pada sertifikat sebuah situs sebelum menampilkan gembok hijau.

PGP: bagaimana enkripsi kunci publik dan privat bekerja

Mengapa kunci publik PGP bisa dibagikan secara bebas, tapi kunci privat tidak pernah.