logo
GeekFormat

Generator i weryfikator HMAC

Algorytm Hashi

Zalecana długość klucza odpowiada długości wyjścia Hasha: SHA-1 = 20 bajtów, SHA-256 = 32 bajtów, SHA- 384 = 48 bajtów, SHA-512 = 64 bajtów

Zawartość wiadomości0 Znaki
Podpis HMAC (Hex)
Oczekiwanie na wejście...

Uwagi

  • HMAC Generuje podpisy oparte na algorytmach kluczowych i Hashi do uwierzytelniania źródła i integralności
  • Obsługa SHA-1 / SHA-256 / SHA- 384 / SHA-512
  • Generowanie i walidacja zarówno lokalnie w przeglądarkach, bez wysyłania danych
  • Walidacja wykorzystuje stałą długość bajtów w celu zmniejszenia różnic w szeregach czasowych

Generuj i weryfikuj podpisy HMAC online za darmo, obsługuje popularne algorytmy z serii SHA. Idealne do podpisywania API, weryfikacji Webhook i debugowania bezpieczeństwa.

Powiązane Rekomendacje

Przypadki użycia

  • Rozwój webhook Stripe: Debuguj wywołania zwrotne płatności Stripe, zweryfikuj poprawność nagłówka `Stripe-Signature`
  • Integracja webhook GitHub: Zweryfikuj podpis `X-Hub-Signature-256` dla zdarzeń Push i Pull Request GitHub
  • Synchronizacja zamówień Shopify: Zweryfikuj podpis `X-Shopify-Hmac-Sha256` dla webhooków aktualizacji zamówień Shopify
  • Podpisy botów Slack: Zweryfikuj `X-Slack-Signature` dla wywołań zwrotnych zdarzeń Slack
  • Debugowanie rozwoju JWT: Podpisuj JWT za pomocą HS256, weryfikuj ważność tokena
  • Podpisywanie żądań API: Implementuj AWS Signature V4 lub niestandardowe schematy podpisywania API

Funkcje

  • Wsparcie dla wielu algorytmów: HMAC-SHA256/384/512, SHA1, MD5 — obejmuje nowoczesne API i systemy legacy
  • Weryfikacja podpisu Webhook: Wbudowane wsparcie dla formatów podpisów Stripe/GitHub/Shopify/Slack z automatycznym parsowaniem
  • Trzy formaty wyjściowe: Hex / Base64 / Base64URL — spełnia wymagania dowolnego API lub platformy
  • Generowanie w czasie rzeczywistym: Automatyczne obliczanie przy zmianie wejścia z 300ms debounce, bez konieczności klikania przycisku
  • Tryb weryfikacji podpisu: Wklej oczekiwany podpis do porównania, wyświetlanie wyniku dopasowania w czasie rzeczywistym
  • Wykrywanie długości klucza: Monitorowanie siły klucza w czasie rzeczywistym z ostrzeżeniami dla krótkich kluczy
  • Przetwarzanie w przeglądarce: Web Crypto API do lokalnych obliczeń, klucze nigdy nie są przesyłane na serwer
  • Wsparcie JWT: Wyjście HMAC-SHA256 bezpośrednio używane do podpisywania HS256

Jak Używać

  1. Wybierz algorytm: Domyślnie HMAC-SHA256, zalecany dla nowoczesnych API
  2. Wprowadź wiadomość: Wklej surową treść wiadomości lub zawartość żądania API
  3. Wprowadź klucz: Wprowadź Webhook Secret lub API Secret
  4. Wybierz format: Wybierz format wyjściowy (hex dla Stripe, Base64URL dla JWT)
  5. Zweryfikuj podpis: Przełącz do trybu weryfikacji, wklej oczekiwany podpis do porównania

Często Zadawane Pytania

Jaka jest różnica między HMAC a zwykłym hashowaniem?

Zwykłe funkcje haszujące (jak SHA256) obliczają tylko skrót samej wiadomości — każdy może je obliczyć. HMAC wprowadza tajny klucz do procesu hashowania, więc tylko strony posiadające klucz mogą wygenerować lub zweryfikować prawidłowy podpis. HMAC gwarantuje zarówno integralność wiadomości, jak i autentyczność, podczas gdy zwykłe hasze weryfikują tylko integralność.

Jak zweryfikować podpisy webhook Stripe/GitHub/Shopify?

Różne platformy formatują swoje podpisy inaczej: Stripe używa nagłówka `Stripe-Signature` z formatem `t=timestamp,v1=hex_signature`, podpisując ciąg `timestamp.payload`; GitHub używa `X-Hub-Signature-256` z formatem `sha256=hex_signature`; Shopify używa `X-Shopify-Hmac-Sha256` z wartością zakodowaną w Base64. To narzędzie obsługuje bezpośrednią weryfikację tych popularnych formatów.

Jaka jest różnica między wyjściem Hex, Base64 i Base64URL?

Hex to format szesnastkowy (0-9, A-F), czytelny dla człowieka, świetny do debugowania. Base64 to 64-znakowe kodowanie, bardziej kompaktowe, idealne do osadzania w JSON. Base64URL to wersja bezpieczna dla URL (zastępuje +/ przez -_), używana w nagłówkach JWT i parametrach URL.

Którego algorytmu HMAC powinienem użyć?

**Zalecany jest HMAC-SHA256**: to nowoczesny standard dla API i webhook (używany przez Stripe, GitHub, Shopify, Slack), z 32-bajtowym wyjściem i uniwersalnym wsparciem. SHA-512 oferuje wyższe bezpieczeństwo, ale dłuższe wyjście (64 bajty). SHA1 jest tylko dla systemów legacy. MD5 jest przestarzały i powinien być używany tylko dla bardzo starych API.

Jakie są wymagania dotyczące długości klucza?

Dłuższe klucze są bezpieczniejsze. Zalecane minimum to 16 znaków (128 bitów), 32+ znaki dla produkcji. Narzędzie monitoruje długość klucza i ostrzega, jeśli jest zbyt krótki. Używaj kryptograficznie bezpiecznych generatorów liczb losowych dla kluczy, nie prostych haseł ani przewidywalnych ciągów.

Dlaczego weryfikacja podpisu pokazuje niedopasowanie?

Najczęstsze przyczyny: 1) Wiadomość zawiera dodatkowe spacje lub znaki nowej linii; 2) Platforma podpisuje złożony ciąg (np. Stripe podpisuje `timestamp.payload`); 3) Podpis zawiera prefiks, który musisz usunąć (jak `sha256=` GitHub); 4) Użyto innego algorytmu. Sprawdź, czy obie strony używają identycznych parametrów.

Czy HMAC może być używany do podpisywania JWT?

Tak. Algorytm HS256 JWT to HMAC-SHA256, a HS512 to HMAC-SHA512. Wyjście HMAC-SHA256 z tego narzędzia może być bezpośrednio użyte jako treść podpisu dla HS256. Nagłówek i Payload JWT są kodowane w Base64URL, następnie podpisywane za pomocą HS256.

Czy to narzędzie HMAC online jest bezpieczne?

To narzędzie używa Web Crypto API do wszystkich obliczeń lokalnie w Twojej przeglądarce. Klucze i wiadomości nigdy nie są wysyłane do żadnego serwera. Możesz to zweryfikować, otwierając panel Network w Narzędziach Deweloperskich przeglądarki — nie są wykonywane żadne zewnętrzne żądania. Odpowiednie do testowania i rozwoju; dla wysoce wrażliwych kluczy produkcyjnych używaj lokalnych narzędzi offline.

Czy podpisy HMAC mogą być podrobione?

Nie. Bezpieczeństwo HMAC zależy od tajności klucza i odporności na kolizje algorytmu haszującego. Przy wystarczająco długich i losowych kluczach nie ma znanych ataków, które mogą podrobić prawidłowe podpisy HMAC. Regularna rotacja kluczy jest dobrą praktyką bezpieczeństwa.

Czym jest Generator i Weryfikator HMAC?

HMAC (Hash-based Message Authentication Code) to szeroko stosowana technologia uwierzytelniania wiadomości zdefiniowana w RFC 2104. HMAC przetwarza klucz razem z wiadomością przez funkcję haszującą, aby wygenerować podpis o stałej długości. W przeciwieństwie do zwykłych haszy, HMAC wymaga znajomości klucza do wygenerowania lub zweryfikowania podpisu, gwarantując zarówno integralność wiadomości, jak i autentyczność.

**HMAC jest fundamentem nowoczesnego bezpieczeństwa API**. Stripe, GitHub, Shopify, Slack i Twilio używają HMAC-SHA256 do podpisywania zdarzeń webhook, zapewniając, że żądania rzeczywiście pochodzą z platformy. AWS używa HMAC-SHA256 do podpisywania żądań Signature V4. Algorytm HS256 JWT to zasadniczo HMAC-SHA256. Zrozumienie HMAC to pierwszy krok do opanowania bezpieczeństwa API.

**Różne platformy mają różne formaty podpisów**: format Stripe to `t=timestamp,v1=hex_signature`, podpisujący `timestamp.payload`; GitHub używa `X-Hub-Signature-256` z formatem `sha256=hex_signature`; Shopify używa `X-Shopify-Hmac-Sha256` z wartością zakodowaną w Base64. To narzędzie obsługuje automatyczne parsowanie i weryfikację tych popularnych formatów.

**Dlaczego weryfikacja podpisu nie powiodła się?** Najczęstszą przyczyną jest niedopasowanie formatu wiadomości: platforma może podpisywać `timestamp.payload` zamiast surowej treści wiadomości; lub wiadomość zawiera dodatkowe znaki nowej linii; lub podpis zawiera prefiks (jak `sha256=`), który trzeba usunąć. Sprawdź dokładnie dokumentację platformy i porównaj za pomocą surowej wartości szesnastkowej.

To narzędzie używa natywnej **Web Crypto API** przeglądarki (SubtleCrypto) do obliczeń HMAC — tej samej biblioteki kryptograficznej, która napędza HTTPS i TLS. Wszystkie obliczenia odbywają się lokalnie; klucze i wiadomości nigdy nie są wysyłane do żadnego serwera. Otwórz panel Network w Narzędziach Deweloperskich przeglądarki, aby zweryfikować, że nie są wykonywane żadne zewnętrzne żądania.