Generator i weryfikator HMAC
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
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
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.
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
Jak Używać
- Wybierz algorytm: Domyślnie HMAC-SHA256, zalecany dla nowoczesnych API
- Wprowadź wiadomość: Wklej surową treść wiadomości lub zawartość żądania API
- Wprowadź klucz: Wprowadź Webhook Secret lub API Secret
- Wybierz format: Wybierz format wyjściowy (hex dla Stripe, Base64URL dla JWT)
- Zweryfikuj podpis: Przełącz do trybu weryfikacji, wklej oczekiwany podpis do porównania
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
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.
- Bezpieczne porównanie ciągów znaków
- Konwersja binarna
- Szyfr Cezara
- Kod Morse'a
- Szesnastkowy
- Video do Base64
- Base64 na wideo
- Obraz na Base64
- Base64 na obraz
- Tekst na Base64
- Base64 na tekst
- Weryfikacja haszu pliku
- Plik na Base64
- Base64 na plik
- Audio na Base64
- Base64 na Audio
- Szyfrowanie i deszyfrowanie AES
- Szyfrowanie i deszyfrowanie DES
- Koder Dekoder Base32
- Base58 kodowanie i dekodowanie
- Kodowanie Base64
- Dekodowanie Base64
- Porównanie Base64
- Podział Base64
- Base64 łączenie wielu linii
- Formatowanie Base64
- Sprawdzanie formatu Base64
- Wsadowe kodowanie Base64
- Batchowe dekodowanie Base64
- Czyszczenie Base64
- Narzędzie paddingu Base64
- Statystyki długości Base64
- Base64 na szesnastkowy
- Konwerter Base64 DataURL
- Konwerter Base64-Hex
- Koder/Dekoder Base85
- Generator i weryfikator HMAC
- Derywacja klucza PBKDF2
- Skrót MD5
- Hash SHA-256
- Hash SHA-1
- Hash SHA512
- Narzędzie JWT
- Kodowanie i dekodowanie encji HTML
- Unikod - sekwencje ucieczki
- Kodowanie URL
- Base64 URL Safe
- MIME Base64
- Obfuskacja Java
- Obfuskacja JS
- Obfuskacja PHP
- Obfuskacja Python