ESC

Penjana HMAC

Output HMAC akan muncul di sini...

Bandingkan HMAC

Semua pemprosesan berlaku dalam pelayar anda menggunakan API Web Crypto. Tiada data dihantar ke pelayan.

Contoh Penggunaan

Pengesahan API

Jana tandatangan HMAC untuk pengesahan permintaan API, biasa digunakan dalam API REST.

Pengesahan Webhook

Sahkan muatan webhook dengan membandingkan tandatangan HMAC dari perkhidmatan seperti Stripe atau GitHub.

Tandatangan JWT

Cipta tandatangan HMAC-SHA256 untuk menandatangani muatan JSON Web Token (JWT).

Ciri-ciri

Pelbagai Algoritma

Sokongan untuk HMAC-SHA256, HMAC-SHA384, HMAC-SHA512, dan HMAC-SHA1

Perbandingan HMAC

Bandingkan HMAC yang dijana dengan nilai jangkaan untuk mengesahkan integriti mesej

Pelbagai Format Output

Output dalam heksadesimal atau pengekodan Base64 untuk keperluan integrasi berbeza

API Web Crypto

Menggunakan API Web Crypto asli untuk penjanaan HMAC selamat berasaskan pelayar

Cara Menggunakan?

1

Masukkan Mesej & Kunci

Taip atau tampal mesej anda dan masukkan kunci rahsia anda.

2

Pilih Algoritma

Pilih algoritma HMAC (SHA-256, SHA-384, SHA-512, atau SHA-1) dan format output.

3

Jana & Salin

Klik Jana HMAC dan salin hasilnya. Secara pilihan, bandingkan dengan nilai HMAC jangkaan.

Soalan Lazim

HMAC (Hash-based Message Authentication Code) menggabungkan fungsi hash kriptografi dengan kunci rahsia untuk menghasilkan tandatangan. Ia membuktikan kedua-dua integriti (mesej tidak diubah) dan keaslian (penghantar mengetahui kunci rahsia). Tanpa kunci, tiada siapa boleh memalsukan HMAC yang sah, menjadikannya jauh lebih kukuh daripada hash biasa untuk tujuan pengesahan.

Hash SHA-256 bagi "hello" sentiasa sama: sesiapa boleh mengiranya. HMAC-SHA256 bagi "hello" menghasilkan keputusan berbeza untuk setiap kunci rahsia. Hashing biasa memberi integriti (mengesan gangguan). HMAC memberi integriti tambah pengesahan (membuktikan siapa yang menandatangani). Sebab itulah API menggunakan HMAC untuk penandatanganan permintaan, bukan SHA-256 biasa.

HMAC-SHA256 ialah standard industri dan yang digunakan oleh kebanyakan perkhidmatan: AWS Signature Version 4, webhook Stripe, webhook GitHub, webhook Shopify. HMAC-SHA512 menyediakan margin keselamatan tambahan dan lebih pantas daripada SHA-256 pada perkakasan 64-bit. Elakkan HMAC-SHA1 untuk projek baru; gunakan hanya apabila mengintegrasikan dengan sistem warisan yang memerlukannya.

Kedua-duanya mewakili nilai HMAC yang sama dalam pengekodan berbeza. Hex (heksadesimal) menghasilkan 64 aksara untuk HMAC-SHA256, lebih mudah dibaca dan dibanding secara manual. Base64 menghasilkan 44 aksara, lebih padat, biasa digunakan dalam pengepala HTTP Authorization, tandatangan JWT dan pengepala permintaan API. Semak format yang dijangka oleh perkhidmatan sasaran anda sebelum menjana.

Apabila anda menerima webhook daripada Stripe, payload datang dengan pengepala X-Stripe-Signature yang mengandungi HMAC-SHA256 badan mentah, ditandatangani dengan kunci rahsia endpoint anda. Untuk mengesahkan: kira HMAC-SHA256 badan permintaan mentah menggunakan rahsia anda, kemudian bandingkan dengan nilai pengepala. Jika sepadan, webhook adalah tulen. GitHub menggunakan X-Hub-Signature-256 dengan cara yang sama. Alat ini membolehkan anda mengira dan mengesahkan tandatangan ini tanpa menulis kod.

Untuk HMAC-SHA256, panjang kunci yang disyorkan ialah sekurang-kurangnya 32 bait (256 bit), sepadan dengan saiz output hash. Kunci yang lebih pendek mengurangkan keselamatan; kunci yang lebih panjang adalah baik. Jangan sekali-kali menggunakan rentetan yang boleh diingat manusia sebagai kunci, terlalu mudah diramal. Jana kunci dengan RNG yang selamat secara kriptografi dan simpan dalam pemboleh ubah persekitaran atau pengurus rahsia, bukan dalam kod sumber.

Jana HMAC, kemudian tampal nilai HMAC yang dijangka ke dalam medan Bandingkan. Alat ini membandingkan dua nilai dan melaporkan sama ada ia sepadan. Berguna untuk mengesahkan tandatangan webhook: kira HMAC yang dijangka daripada payload yang diterima dan kunci anda, kemudian bandingkan dengan tandatangan dalam pengepala permintaan. Padanan mengesahkan webhook adalah tulen.

Tidak pernah. Semua penjanaan HMAC menggunakan Web Crypto API (window.crypto.subtle.sign), yang berjalan sepenuhnya dalam pelayar anda. Kunci, mesej dan output HMAC anda tidak pernah dihantar ke mana-mana pelayan. Anda boleh memutuskan sambungan internet dan alat ini berfungsi dengan cara yang sama.

Apa itu HMAC?

HMAC bermaksud Kod Pengesahan Mesej berasaskan Hash. Ia menggabungkan fungsi hash kriptografi (seperti SHA-256) dengan kunci rahsia untuk menghasilkan tandatangan yang membuktikan kedua-dua integriti dan keaslian mesej. Berbeza daripada hash biasa, HMAC memastikan hanya seseorang yang mengetahui kunci rahsia yang boleh menjana kod tersebut - sebab itulah ia menjadi tulang belakang pengesahan API, pengesahan webhook dan tandatangan JWT.

Di mana anda akan jumpa HMAC dalam dunia sebenar

Jika anda pernah integrasi dengan Stripe, GitHub atau AWS, anda telah menggunakan HMAC. Stripe menandatangani payload webhook dengan HMAC-SHA256 supaya anda boleh sahkan ia benar-benar datang dari Stripe. AWS menggunakan HMAC-SHA256 dalam Signature Version 4 untuk menandatangani permintaan API. JWT dengan algoritma HS256 sebenarnya ialah HMAC-SHA256. Alat ini membolehkan anda menjana dan mengesahkan tandatangan ini tanpa menulis kod.

HMAC vs hash biasa

Hash SHA-256 bagi "hello" sentiasa sama tidak kira siapa yang mengiranya. HMAC-SHA256 bagi "hello" berbeza untuk setiap kunci rahsia - jadi ia membuktikan mesej tidak diubah DAN ia dicipta oleh seseorang yang mengetahui kunci. Inilah perbezaan kritikal: hash memberi integriti, HMAC memberi integriti ditambah pengesahan.

Memilih algoritma yang betul

HMAC-SHA256 ialah standard industri dan yang patut anda gunakan melainkan ada sebab khusus. HMAC-SHA384 dan HMAC-SHA512 menghasilkan output lebih panjang untuk margin keselamatan lebih tinggi. HMAC-SHA1 disokong untuk keserasian ke belakang tetapi tidak patut digunakan dalam pelaksanaan baru.

Keselamatan dan privasi

Alat ini berjalan sepenuhnya dalam pelayar anda menggunakan Web Crypto API - pelaksanaan kriptografi yang sama yang mengendalikan TLS. Kunci rahsia anda tidak pernah menyentuh pelayan. Anda boleh sahkan ini dengan menggunakan alat secara luar talian.

Keselamatan dan Privasi

Keselamatan data anda adalah keutamaan kami

Pemprosesan Tempatan

Semua pemprosesan berlaku dalam pelayar anda

Tiada Pemindahan Data

Data anda tidak dihantar ke pelayan kami

Tiada Penyimpanan Data

Tiada data disimpan atau dikongsi

Penyulitan SSL

Penyulitan SSL untuk sambungan selamat

Langkah Seterusnya

Lebih Banyak di MoreOnlineTools