Dane nie są wysyłane

Generator HMAC (Oblicz HMAC-SHA256 w przeglądarce)

Narzędzie do generowania HMAC SHA256 bezpośrednio tutaj. Klucze i dane wejściowe nie są wysyłane ani przechowywane.

Obsługuje formaty Text/Hex/Base64 na wejściu i Hex/Base64 na wyjściu. Bezpieczne obliczenia przy użyciu standardowego interfejsu Crypto API.

Lokalne obliczenia Brak przechowywania Obsługa Hex/Base64

Wejście i Wyjście

Ta strona wykonuje obliczenia wyłącznie w przeglądarce i nie wysyła danych.

Dane nie są wysyłane
Format wejściowy

* Ważna jest „sekwencja bajtów” zgodnie ze specyfikacją API. Jeśli klucz jest binarny, wprowadź go jako Hex lub Base64.

Format wejściowy
Długość wyjściowa: 32 bajty (SHA-256)
Opcje

Wyniki zmienią się, jeśli znaki nowej linii różnią się między systemami operacyjnymi lub przy wklejaniu.

Ponieważ podpisy API zakładają „dokładne dopasowanie”, zazwyczaj zaleca się zachowanie danych bez zmian.

Sposób użycia

3 podstawowe kroki do utworzenia podpisu HMAC.

  1. 1 Wprowadź klucz (wybierz Hex / Base64, jeśli specyfikacja API jest binarna)
  2. 2 Wprowadź wiadomość (ciąg do podpisania / ładunek)
  3. 3 Wybierz format wyjściowy (Hex / Base64) i skopiuj wynik

HMAC jest obliczany na „sekwencjach bajtów”, a nie na „ciągach znaków”. Nawet jeśli wyglądają tak samo, wyniki będą inne, jeśli kodowanie znaków, nowe linie lub białe znaki się różnią (zakłada się UTF-8).

Przykłady (Wektory testowe do weryfikacji)

Kliknij 'Załaduj przykład', aby wypełnić pola.

Przykład 1
Key (Text/UTF-8)
secret
Message (Text/UTF-8)
message
HMAC-SHA256 (Hex)
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b
HMAC-SHA256 (Base64)
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=
Przykład 2
Key (Text/UTF-8)
key
Message (Text/UTF-8)
The quick brown fox jumps over the lazy dog
HMAC-SHA256 (Hex)
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
HMAC-SHA256 (Base64)
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

Typowe pułapki

Różnice w znakach nowej linii (LF/CRLF)

Wyniki zmieniają się w zależności od obsługi nowych linii.

Przycinanie (Usuwanie białych znaków)

Ponieważ podpisy wymagają dokładnego dopasowania, usunięcie białych znaków może spowodować błąd weryfikacji.

Notacja Base64URL

Base64URL zazwyczaj zamienia + na -, / na _ i pomija =. Sprawdź specyfikację.

Obsługa klucza (Tekst vs Binarny)

Przykład: wpisanie 'deadbeef' jako 'tekst' vs wpisanie go jako 'sekwencję bajtów 0xDE 0xAD...'.

Informacje uzupełniające

Co to jest HMAC?

Mechanizm tworzenia podpisu z tajnego klucza i wiadomości. Osoba trzecia nie może stworzyć tego samego wyniku bez posiadania klucza.

Różnica względem SHA-256

SHA-256 to 'skrót' (hash), HMAC to 'podpis z kluczem'.

Zastosowania

Używany do podpisów API, weryfikacji Webhooków, wykrywania ingerencji w dane itp.

FAQ

Czy klucz jest przechowywany?

Nie. To narzędzie wykonuje obliczenia w przeglądarce i nie wysyła kluczy ani wiadomości na serwer. (※ Dla pewności wyczyść dane po użyciu na publicznym komputerze)

Base64 czy Hex?

Oba są stosowane. Możesz wybrać format wyjściowy (Hex / Base64 / Base64URL). Wybierz zgodnie ze specyfikacją swojego API.

Character Encoding?

Assumes UTF-8. Text input is converted to bytes as UTF-8 for calculation. Use Hex / Base64 input for handling binary.

Difference between HMAC and SHA-256 hash?

SHA-256 to 'skrót' (hash), HMAC to 'podpis' (keyed hash). Ten sam wynik nie może zostać wygenerowany, jeśli klucze się nie zgadzają.

Wynik się nie zgadza

Typowe przyczyny to: (1) Obsługa klucza (Tekst vs Binarny), (2) Nowe linie, (3) Białe znaki, (4) Base64URL. Sprawdź powyższe pułapki po kolei.