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

Common uses

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.

Artykuły: Hashe/Krypto

Hash Generator: czym różnią się MD5, SHA-1 i SHA-256

Dlaczego MD5 nadal jest używane do sprawdzania integralności plików, ale nie do haseł.

Checksum Verifier: jak sprawdzić, czy plik nie jest uszkodzony

Dlaczego zgodna suma kontrolna potwierdza integralność pliku, ale nie to, kto go stworzył.

Bcrypt: dlaczego hasła haszuje się wolno, a nie szybko

Dlaczego szybki SHA-256 to zły wybór do haseł, a wolny bcrypt to właściwy.

UUID: jak generuje się identyfikatory, które prawie nigdy się nie powtarzają

Dlaczego UUID v4 można generować niezależnie na milionach maszyn bez ryzyka kolizji.

Generator haseł: co naprawdę czyni hasło silnym

Dlaczego długie hasło ze słów słownikowych jest silniejsze niż krótkie z symbolami i cyframi.

AES: jak działa szyfrowanie symetryczne

Dlaczego ten sam klucz szyfruje i deszyfruje dane w AES, i czym różni się to od szyfrowania asymetrycznego.

Argon2: dlaczego ten algorytm wygrał konkurs na haszowanie haseł

Jak Argon2 lepiej broni się przed atakami z użyciem kart graficznych niż starsze algorytmy haszowania haseł.

Scrypt: dlaczego algorytm potrzebuje tak dużo pamięci

Dlaczego scrypt celowo wymaga dużo pamięci, aby utrudnić łamanie na urządzeniach ASIC.

TOTP: jak działają jednorazowe kody w aplikacjach uwierzytelniających

Dlaczego kod w Google Authenticator działa bez internetu i synchronizuje się z serwerem tylko przez czas.

PBKDF2: najstarszy standard rozciągania klucza

Dlaczego zalecana liczba iteracji PBKDF2 rośnie z każdym rokiem.

X.509: co jest wewnątrz certyfikatu SSL

Co dokładnie przegląda przeglądarka w certyfikacie witryny, zanim pokaże zieloną kłódkę.

PGP: jak działa szyfrowanie kluczem publicznym i prywatnym

Dlaczego można swobodnie udostępniać klucz publiczny PGP, ale nigdy klucz prywatny.