Penjana HMAC (HMAC-SHA256 dalam Pelayar)

Halaman penjanaan HMAC SHA256 tanpa rangkaian untuk pengiraan HMAC pantas dan pengesahan tandatangan.

Semuanya berjalan secara setempat dalam pelayar anda. Kunci dan mesej tidak pernah dihantar atau disimpan.

Pengiraan setempat Tiada penyimpanan Hex dan Base64
Tiada penghantaran rangkaian

Cara menggunakan (HMAC signature)

  1. Masukkan kunci. Jika spesifikasi API anda memberikan bait kunci binari, pilih format input Hex atau Base64.
  2. Masukkan payload mesej yang hendak ditandatangani.
  3. Pilih format output (Hex / Base64 / Base64URL) dan salin hasil.
HMAC berfungsi pada bait, bukan teks visual. Pengekodan UTF-8, perbezaan baris baharu, dan ruang tambahan akan mengubah hasil.

Contoh (vektor ujian)

Contoh 1 (semakan ringkas)

Input: Kunci = secret (UTF-8), Mesej = message (UTF-8)

HMAC-SHA256 (Hex):
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b

HMAC-SHA256 (Base64):
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=

Contoh 2 (frasa biasa)

Input: Kunci = key, Mesej = The quick brown fox jumps over the lazy dog

Hex:
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Base64:
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

Perangkap biasa

  • Perbezaan baris baharu LF vs CRLF menghasilkan tandatangan yang berbeza.
  • Memangkas ruang awal/akhir boleh merosakkan padanan tandatangan API.
  • Base64URL selalunya bermaksud + menjadi -, / menjadi _, dan padding = digugurkan. Semak spesifikasi API anda.
  • Jika kunci diedarkan sebagai bait Hex/Base64, menganggapnya sebagai teks biasa akan menyebabkan ketidakpadanan.

Soalan Lazim

Adakah kunci saya disimpan?

Tidak. Alat ini mengira dalam pelayar anda dan tidak menghantar input kunci/mesej ke mana-mana pelayan.

Base64 atau Hex?

Kedua-duanya biasa digunakan. Anda boleh memilih output Hex / Base64 / Base64URL untuk memadankan spesifikasi API anda.

Apakah pengekodan aksara yang digunakan (UTF-8)?

Input teks dikodkan sebagai UTF-8 sebelum pengiraan HMAC. Untuk nilai binari, gunakan input Hex/Base64.

Apakah beza antara HMAC dan hash SHA-256?

SHA-256 ialah hash biasa. HMAC menambah kunci rahsia untuk pengesahan mesej.

Output saya tidak sepadan. Apa yang perlu saya semak?

Semak tafsiran kunci (teks vs bait), pengendalian baris baharu, trim ruang putih, dan peraturan Base64URL.

Tambahan

Apakah HMAC?

HMAC ialah kod pengesahan mesej berasaskan hash berkunci yang menggunakan kunci rahsia dan fungsi hash.

Perbezaan daripada SHA-256

SHA-256 sahaja tidak mempunyai kunci rahsia. HMAC-SHA256 memerlukan kunci bersama dan digunakan untuk tandatangan.

Kes penggunaan biasa

Penandatanganan permintaan API, pengesahan webhook, dan semakan integriti token.