Przejdź do treści
TextArray
100% lokalnie

Generator HMAC

Oblicz podpisy HMAC-SHA256, SHA-1, SHA-384 lub SHA-512 z tajnym kluczem.

Wejście
Wynik

Generator HMAC

HMAC to hash z kluczem: wiadomość i tajny klucz wchodzą do obliczenia razem, a odtworzyć lub zweryfikować wynik może tylko ktoś z tym samym kluczem. Dokładnie tym dostawcy API podpisują żądania, a nadawcy webhooków — platformy płatnicze czy serwisy hostujące kod — dołączają go do każdej przesyłki, żeby odbiorca mógł udowodnić, że dane naprawdę pochodzą od nich i nie zostały po drodze zmienione.

Wpisz tajny klucz, wybierz algorytm używany przez drugą stronę — przytłaczającym standardem jest SHA-256 — i wklej wiadomość. Skrót pojawia się jako małe litery hex albo jako Base64, czyli w dwóch formatach, w których wymienia się podpisy. Włącz HMAC dla każdego wiersza, aby podpisać osobno każdy wiersz wejścia — pasuje to do kolumny tokenów lub identyfikatorów. Programiści sięgają po to narzędzie przy debugowaniu handlera webhooków odrzucającego podpisy, odtwarzaniu przykładu z dokumentacji albo generowaniu wektora testowego do testu jednostkowego.

Klucz i wiadomość traktowane są jako bajty UTF-8, dokładnie tak jak w większości serwerowych SDK. Gdy twój wynik nie zgadza się z drugą stroną, przyczyną prawie zawsze są bajty, nie matematyka: końcowy znak nowego wiersza w treści, zakończenia CRLF, hex porównany z Base64 albo klucz, który usługa wydaje zakodowany w Base64 lub hex i oczekuje go zdekodowanego przed użyciem.

Pole klucza jest maskowane i celowo nigdy nie trafia do pamięci przeglądarki. Wszystko działa lokalnie przez wbudowane WebCrypto — wklejenie sekretu podpisującego do internetowego narzędzia HMAC zwykle oddaje go obcemu serwerowi, a tutaj nigdy nie opuszcza twojego urządzenia.

Częste pytania

Do czego służy HMAC?
Do udowodnienia, że wiadomość pochodzi od kogoś ze wspólnym sekretem i nie została po drodze zmieniona. Typowe zastosowania: podpisywanie żądań API, weryfikacja webhooków od platform płatniczych i hostingowych oraz podpisywanie tokenów. Odbiorca przelicza HMAC tym samym kluczem i porównuje.
Czym HMAC różni się od zwykłego hasha?
Zwykłe SHA-256 wiadomości policzy każdy, więc o nadawcy nie dowodzi niczego. HMAC domiesza do obliczenia tajny klucz w sposób odporny na manipulacje — bez klucza nie da się ani sfałszować, ani zweryfikować prawidłowego podpisu. Dlatego też HMAC-SHA1 pozostaje w praktyce akceptowalny, choć samo SHA-1 jest złamane pod względem kolizji; nowe projekty powinny jednak wybierać SHA-256.
Dlaczego mój HMAC nie zgadza się z tym z serwera?
Prawie zawsze różnią się bajty. Sprawdź końcowy znak nowego wiersza w treści, zakończenia CRLF kontra LF, hex porównany z Base64 oraz format klucza — wiele usług wydaje sekret zakodowany w Base64 lub hex i jako klucza oczekuje zdekodowanych bajtów. To narzędzie używa klucza dokładnie tak, jak został wpisany, jako UTF-8.
Czy ktoś może odzyskać mój klucz z HMAC?
Żaden praktyczny atak nie odzyskuje klucza z podpisów. Ale każdy, kto ma klucz, może podpisywać dowolne wiadomości — traktuj więc sekrety podpisujące jak hasła: wymień sekret webhooka po możliwym wycieku i nigdy nie zapisuj go w repozytorium.
Czy mój klucz i tekst są gdzieś wysyłane?
Nie. HMAC oblicza wbudowane WebCrypto twojej przeglądarki, pole klucza nigdy nie trafia do pamięci, a klucz ani tekst nigdy nie opuszczają twojego urządzenia.