DevToolPal
PL

Generator HMAC

Oblicza HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 i HMAC-SHA512 wiadomości z tajnym kluczem, w hex lub Base64.

Działa lokalnie, nic nie jest wysyłane

Opcje

Format klucza
Wynik

Wiadomość

0 znaków · 0 B

HMAC

Tutaj pojawi się wynik

Do czego służy

HMAC (kod uwierzytelniania wiadomości oparty na skrócie, RFC 2104) łączy tajny klucz z funkcją skrótu, aby podpisać wiadomość. Odbiorca znający ten sam klucz oblicza HMAC ponownie i porównuje go z otrzymanym. Jeśli wiadomość zmieniono albo nadawca nie znał klucza, wartości się nie zgadzają.

HMAC jest wszędzie: podpisy webhooków (GitHub, Stripe, Slack), podpisane żądania API, JWT z HS256, podpisy ciasteczek i hasła jednorazowe. To narzędzie oblicza jednocześnie HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 i HMAC-SHA512, więc łatwo porównasz wynik z tym, którego używa twój system.

Jak używać

  1. Wpisz Tajny klucz. Zmień Format klucza, jeśli klucz jest podany jako bajty hex lub Base64, a nie zwykły tekst.
  2. Wklej Wiadomość albo kliknij Przykład.
  3. Wszystkie HMAC aktualizują się podczas pisania. Wybierz wynik Hex lub Base64 i skopiuj potrzebną wartość.

Wiadomość jest kodowana w UTF-8 dokładnie tak, jak ją wpiszesz, łącznie ze spacjami i znakami nowej linii.

Przykład

Dla klucza key i wiadomości The quick brown fox jumps over the lazy dog HMAC-SHA256 wynosi f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8. Możesz to sprawdzić w wierszu poleceń:

echo -n "The quick brown fox jumps over the lazy dog" | openssl dgst -sha256 -hmac "key"

Zwróć uwagę na -n: bez niego echo doda znak nowej linii i HMAC będzie inny.

Weryfikacja webhooków

Aby zweryfikować webhook, weź surową treść żądania przed parsowaniem JSON, zbuduj ciąg opisany w dokumentacji dostawcy (często timestamp.body), oblicz HMAC swoim sekretem podpisu i porównaj z nagłówkiem podpisu. We własnym kodzie porównuj podpisy funkcją o stałym czasie działania, aby uniknąć ataków czasowych.

FAQ

› Czym różni się hash od HMAC?

Zwykły hash, taki jak SHA-256, może obliczyć każdy. HMAC miesza z hashem tajny klucz, więc wartość może wygenerować lub sprawdzić tylko ktoś, kto zna klucz. To kod uwierzytelniający wiadomość, a nie tylko suma kontrolna.

› Którego algorytmu HMAC użyć?

Zwykle HMAC-SHA256 — tego oczekuje większość API i webhooków. HMAC-SHA512 też jest dobry. HMAC-MD5 i HMAC-SHA1 jako MAC nadal uchodzą za bezpieczne, ale używaj ich tylko wtedy, gdy wymaga tego starszy system.

› Dlaczego mój HMAC różni się od serwerowego?

Sprawdź dokładne bajty wiadomości (znak nowej linii na końcu lub inne spacje w JSON zmieniają wszystko), format klucza (tekst, hex czy Base64) i kodowanie wyniku. Dostawcy webhooków często podpisują ciąg złożony ze znacznika czasu i surowej treści żądania.

› Czy mój tajny klucz jest zapisywany lub wysyłany?

Nie. HMAC jest obliczany w przeglądarce. Klucz istnieje tylko w pamięci tej strony: nie jest zapisywany, nie trafia do paska adresu ani do linków udostępniania.