Preskoči na sadržaj
1001 Tools
en
Alati za programere

HMAC generator

Unesite poruku i tajni ključ, izaberite hash algoritam, i dobijte HMAC kao heksadecimalni zapis. HMAC dokazuje da poruka dolazi od nekoga ko zna ključ i da nije izmenjena — time se potpisuju API zahtevi i webhook-ovi. Poruka i ključ ostaju u vašem pregledaču i nikada se nigde ne šalju.

Unesite tajni ključ da napravite HMAC.

Računa se Web Crypto API-jem u vašem pregledaču. Poruka i ključ se nikada ne šalju.

Podeli FacebookXLinkedInWhatsAppViber

Kako radi

HMAC kombinuje vaš ključ sa porukom kroz izabranu hash funkciju dvaput, u posebnoj unutrašnjoj/spoljašnjoj konstrukciji (definisanoj u RFC 2104). Rezultat zavisi i od poruke i od ključa: promenite bilo šta za jedan karakter i ceo zapis se menja. Svako sa istim ključem može ga ponovo izračunati radi provere, ali se bez ključa ne može falsifikovati.

Alat koristi Web Crypto API (SubtleCrypto) za samo potpisivanje, pa se oslanja na proverenu kriptografsku implementaciju pregledača umesto na ručno pisan kod. Izaberite SHA-256 osim ako sistem ne traži drugačije — to je uobičajena podrazumevana vrednost. Dužina zapisa zavisi od algoritma: SHA-256 daje 64 heks karaktera, SHA-512 daje 128.

Primeri iz prakse

Provera potpisa webhook-a

Servisi poput platnih provajdera potpisuju svaki webhook uzimajući HMAC-SHA256 tela zahteva sa vašim deljenim tajnim ključem. Nalepite telo i tajni ključ, izaberite SHA-256, i uporedite rezultat sa zaglavljem potpisa da potvrdite da je zahtev pravi.

Brz test vektor

Poruka „The quick brown fox jumps over the lazy dog” sa ključem „key” i SHA-256 daje f7bc83f4…2d1a3cd8 — poznat vektor kojim možete proveriti bilo koju HMAC implementaciju.

Potpisivanje API zahteva

Mnogi API-ji žele HMAC kanonskog stringa (metod + putanja + vreme) pod vašim API ključem. Sastavite taj string, potpišite ga ovde da vidite očekivanu vrednost, i uporedite je sa onim što vaš kod proizvodi.

Česta pitanja

Koja je razlika između HMAC-a i običnog heša?

Običan heš (poput SHA-256) zavisi samo od ulaza, pa ga svako može izračunati. HMAC dodatno umešava tajni ključ, pa ga samo neko ko zna ključ može napraviti ili proveriti. Zato je HMAC pogodan za autentifikaciju, ne samo za integritet.

Koji algoritam da koristim?

HMAC-SHA256 je razumna podrazumevana vrednost i ono što većina API-ja očekuje. Koristite SHA-384 ili SHA-512 ako specifikacija to traži. Izbegavajte HMAC-SHA1 za nove sisteme — ponuđen je radi kompatibilnosti sa starijima, jer je HMAC-SHA1 još uvek bezbedan ali se SHA-1 povlači.

Da li je HMAC šifrovanje?

Ne. HMAC je jednosmeran autentifikacioni kod — iz njega ne možete povratiti poruku. Dokazuje autentičnost i integritet, ali ne skriva poruku. Koristite šifrovanje ako vam treba poverljivost.

Zašto prazan ključ ne daje rezultat?

HMAC zahteva ključ, pa alat čeka dok ga ne unesete. U praksi uvek treba koristiti jak, tajni ključ — prazan ili lako pogodljiv ključ obesmišljava autentifikaciju.

Da li je dužina ključa važna?

Duži, nasumični ključevi su jači. HMAC prihvata ključeve bilo koje dužine (interno hešira ključeve duže od veličine bloka), ali radi bezbednosti ključ treba da bude bar dužine izlaza heša i nasumično generisan, a ne reč iz rečnika.

Da li se moj ključ ili poruka šalju serveru?

Ne. Sve se računa Web Crypto API-jem unutar vašeg pregledača. Ništa što ukucate se ne šalje, a analitika to ne dobija — što je upravo ono što želite za tajni ključ.

Zašto se moj rezultat razlikuje od drugog alata?

Obično zbog kodiranja ili skrivenih karaktera. Ovaj alat tretira poruku i ključ kao UTF-8 tekst. Ako druga strana koristi base64- ili heks-kodiran ključ, ili drugačiju konvenciju za nove redove, ulazi se razlikuju pa će i HMAC.

Šta radi prekidač za velika slova?

Menja samo kako se heks zapis prikazuje (A–F naspram a–f). Vrednost je ista u oba slučaja; neki sistemi očekuju velika heks slova, pa vam prekidač štedi ručnu konverziju.

Mogu li ovim da čuvam lozinke?

Ne. HMAC nije funkcija za heširanje lozinki. Za čuvanje lozinki koristite namenski, spor algoritam poput bcrypt, scrypt ili Argon2, koji odolevaju napadima grubom silom. HMAC služi za autentifikaciju poruka.

Srodni alati