Hashe/Krypto
HMAC Generator
Oblicz HMAC (Hash-based Message Authentication Code) tekstu lub pliku z kluczem tajnym — od razu ośmioma algorytmami: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.
HMAC (Hash-based Message Authentication Code) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.
How to use it
- Enter text or a file and a secret key — the HMAC is computed instantly with eight algorithms at once (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Copy the variant you need to verify a signature or compare against an expected value.
- The same input and key always produce the same HMAC — handy for checking against a signature received from another system.
Common uses
- Verifying a webhook signature from a payment service or API (most sign the payload with HMAC-SHA256).
- Generating a request signature for an API that requires HMAC authentication.
- Debugging a mismatched signature — checking the key, input encoding, and algorithm one at a time.
Things to keep in mind
HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.
A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.
Artykuł o tym narzędziu: HMAC: czym skrót z kluczem różni się od zwykłego skrótu
Najczęstsze pytania
Jaka jest różnica między HMAC a zwykłym hashem?
Zwykły hash tylko dowodzi, że dane nie zostały zmienione; HMAC dodatkowo używa klucza tajnego, więc dowodzi zarówno integralności, jak i tego, że nadawca znał wspólny sekret — bez klucza nikt nie wygeneruje poprawnego HMAC, nawet znając algorytm.
Który algorytm hashujący wybrać dla HMAC?
HMAC-SHA256 to solidny nowoczesny wybór domyślny. Starsze opcje jak HMAC-MD5 czy HMAC-SHA1 same jako HMAC wciąż nie są złamane, ale dla nowych systemów zaleca się SHA-256 lub silniejszy.
Czy mój tajny klucz jest gdzieś wysyłany?
Nie. HMAC jest obliczany całkowicie w Twojej przeglądarce za pomocą Web Crypto API — klucz i wiadomość nigdy nie opuszczają Twojego urządzenia.
Dlaczego nie można porównywać HMAC zwykłym operatorem równości?
Zwykłe porównanie ciągów znaków zatrzymuje się na pierwszej niezgodności, a czas wykonania zdradza atakującemu, ile pierwszych znaków odgadł poprawnie (timing attack). Potrzebne są funkcje porównania w czasie stałym, na przykład hash_equals w PHP.
Czy można użyć tego samego klucza do kilku różnych celów?
Nie jest to zalecane. Jeśli ten sam klucz tajny jest używany zarówno do podpisywania webhooków, jak i do innego celu, kompromitacja jednego systemu automatycznie kompromituje drugi — dla każdego osobnego zastosowania warto wygenerować oddzielny klucz.