Pengembang / Tanda tangan

Generator HMAC (SHA-256, SHA-512)

Buat signature HMAC untuk pesan dan secret key dengan SHA-256, SHA-384, SHA-512, atau SHA-1 dalam format heksadesimal dan Base64 untuk menguji signature webhook dan API.

Generator HMAC (SHA-256, SHA-512): HMAC menggabungkan secret key dengan pesan melalui fungsi hash, sehingga hanya seseorang yang memiliki key tersebut yang dapat menghasilkan signature yang sama. Proses ini dilakukan dengan Web Crypto API di browser Anda, yaitu implementasi yang sama yang digunakan browser untuk HTTPS. Key kosong diperbolehkan; key tersebut diperlakukan sebagai key dengan panjang zero bytes, sebagaimana ditetapkan oleh standar HMAC. Berjalan 100% lokal di browser Anda tanpa upload file ke server.

Dijalankan
Di browser Anda
Biaya
Gratis · tanpa daftar
Ketersediaan
Siap digunakan
Generator HMACPemrosesan lokal

Berjalan sepenuhnya di browser Anda

Hex—
Base64—

Pesan dibaca sebagai teks UTF-8, persis seperti yang diketik, termasuk spasi dan jeda baris; newline di akhir akan mengubah hasil. Webhook dari layanan seperti Stripe dan GitHub ditandatangani dengan HMAC-SHA256 dengan cara ini.

Memverifikasi webhook

Ambil body request mentah sebelum parsing apa pun, hitung HMAC dengan secret yang dibagikan, lalu bandingkan dengan header signature menggunakan perbandingan dalam waktu konstan agar timing tidak membocorkan berapa banyak karakter yang cocok. Tolak request dengan timestamp yang lebih lama dari beberapa menit untuk mencegah replay.

Untuk hash tanpa key, gunakan hash generator; untuk token bertanda tangan, gunakan JWT decoder.

Key

Key sepanjang output hash, yaitu 32 byte acak untuk SHA-256, memberikan kekuatan penuh; key yang lebih panjang akan di-hash terlebih dahulu. Jangan menyimpan key di repositori kode, dan lakukan rotasi jika key tersebut bocor.

Cara menggunakannya

  1. Tempel pesan persis seperti saat dikirim, misalnya raw body dari webhook.
  2. Masukkan secret key sebagai teks atau heksadesimal, lalu pilih hash.
  3. Bandingkan hasil heksadesimal atau Base64 dengan signature yang Anda terima.

Privasi & batasan

Pesan dan key tetap berada di browser Anda; tidak ada data yang dikirim ke mana pun.

Alat terkait

Pertanyaan umum

Mengapa signature saya tidak cocok dengan signature webhook?

Pesan yang ditandatangani harus berupa raw body byte demi byte: parsing dan serialisasi ulang JSON, atau newline yang hilang maupun tambahan, akan mengubahnya. Beberapa layanan menandatangani timestamp dan body secara bersamaan, seperti t=…,payload milik Stripe.

Apakah HMAC-SHA1 masih aman?

Untuk HMAC, algoritma ini masih dianggap aman, berbeda dengan SHA-1 untuk hashing biasa. Namun, sistem baru sebaiknya menggunakan HMAC-SHA256.

Heksadesimal atau Base64?

Keduanya adalah dua cara untuk menulis byte yang sama; gunakan format yang ditampilkan oleh layanan. GitHub menggunakan heksadesimal dengan awalan sha256=, sedangkan banyak layanan lain menggunakan Base64.

Alat gratis · berjalan di browser anda · tanpa perlu akun