Skip to content

Generator SHA-384 hash (TLS Suite B)

Generuj hashe SHA-384 online — 96-znakowy wynik hex, odporny na ataki rozszerzenia długości, zgodny z NSA Suite B. Parowany z AES-256-GCM w TLS. Całe hashowanie w przeglądarce przez Web Crypto API.

Bez śledzenia Działa w przeglądarce Bezpłatne
Całe hashowanie odbywa się lokalnie w przeglądarce. Żadne dane nie są przesyłane na serwer.
Algorytm
Zweryfikowano poprawność SHA-384 względem wektorów testowych NIST FIPS 180-4; ramowanie Suite B zweryfikowane względem CNSSP-15 i dokumentacji CNSA Suite — Zespół inżynierski Go Tools · May 28, 2026

Czym jest SHA-384?

SHA-384 to 384-bitowa kryptograficzna funkcja hash z rodziny SHA-2, opublikowana przez NIST w 2001 roku jako część FIPS 180-2. Architektonicznie jest skróconym wariantem SHA-512: oba algorytmy używają identycznej 64-bitowej arytmetyki słów, 80 rund kompresji i 1024-bitowych bloków wejściowych — jedyną różnicą są wektor inicjalizacji (IV) i fakt, że SHA-384 odrzuca ostatnie 128 bitów 512-bitowego wyjścia SHA-512, produkując 384 bity (96 znaków szesnastkowych).

Dlaczego skrócenie ma znaczenie kryptograficzne: SHA-256 jest podatny na ataki rozszerzenia długości — przy danym SHA-256(wiadomość) atakujący może obliczyć SHA-256(wiadomość || wypełnienie || rozszerzenie) bez znajomości oryginalnej wiadomości, wznawiając obliczenie hash z ujawnionego stanu wewnętrznego. SHA-384 eliminuje tę powierzchnię ataku: skrócenie odrzuca 128 bitów stanu wewnętrznego, więc opublikowany 384-bitowy hash nie zawiera wystarczających informacji do wznowienia obliczenia SHA-512. Sprawia to, że surowy SHA-384 (bez owijania HMAC) jest bezpieczny dla konstrukcji, w których wyjście hash może być ujawnione przeciwnikom.

NSA Suite B i rola TLS: SHA-384 był nakazany przez NSA Suite B (CNSSP-15, 2005) dla klasyfikacji ściśle tajnej. Jest algorytmem hash w zestawie szyfrów ECDHE-ECDSA-AES256-GCM-SHA384, który jest standardowym zestawem szyfrów TLS 1.2 dla systemów zgodnych z Suite B i pozostaje szeroko wdrożony w sieciach rządowych, finansowych i obronnych USA. CNSA Suite NSA (2015) zachował SHA-384 obok SHA-256, a SHA-384 pojawia się na liście algorytmów podpisów TLS 1.3 (ecdsa_secp384r1_sha384).

Wydajność: Na sprzęcie 64-bitowym SHA-384 i SHA-512 działają z identyczną szybkością — oba używają wyłącznie 64-bitowych operacji słów. Są zazwyczaj szybsze od SHA-256 (który używa 32-bitowych operacji słów i wymaga więcej przebiegów dla tych samych danych wejściowych) na nowoczesnych procesorach x86-64 i ARM64.

Narzędzie oblicza SHA-384 całkowicie w przeglądarce przez crypto.subtle.digest('SHA-384', ...) z Web Crypto API. Wyjście jest bitowo identyczne z tym, co produkuje sha384sum, openssl dgst -sha384 lub Python hashlib.sha384().

Kiedy używać SHA-384: zestawy szyfrów TLS nakazujące zgodność z Suite B, HMAC-SHA-384 dla PRF TLS 1.2, wyprowadzanie klucza HKDF-SHA-384, odciski tajnych dokumentów i każdy kontekst wymagający odporności na rozszerzenie długości bez owijania HMAC. Kiedy nie używać SHA-384: ogólne sumy kontrolne i codzienne zastosowania integralności — SHA-256 jest standardowym wyborem, z prostszą obsługą bibliotek i powszechną kompatybilnością narzędzi.

// Hash text using Web Crypto API (SHA-384)
async function sha384(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-384', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha384('Hello, World!');
// → '5485cc9b3365b4305dfb4e8337e0a598a574f8242bf17289e0dd6c20a3cd44a089de16ab4ab308f63e44b1170eb5f515'

Przykłady SHA-384

Odcisk uzgadniania zestawu szyfrów TLS

ECDHE-ECDSA-AES256-GCM-SHA384

Nazwa zestawu szyfrów ECDHE-ECDSA-AES256-GCM-SHA384 to kanoniczny zestaw szyfrów Suite B dla sesji TLS ściśle tajnych. Sufiks SHA-384 odnosi się do PRF (Pseudo-Random Function, funkcji pseudolosowej) używanej w uzgadnianiu TLS 1.2 do wyprowadzania kluczy sesji. Wklej ten ciąg, aby wygenerować hash SHA-384 samej nazwy zestawu szyfrów — szybki sposób weryfikacji, że implementacja SHA-384 jest spójna między środowiskami. W rzeczywistej sesji TLS łańcuch certyfikatów, pre-master secret i transkrypt uzgadniania są przeprowadzane przez HMAC-SHA-384 jako część PRF TLS 1.2.

Wyprowadzanie klucza HKDF-SHA-384 (PRF TLS 1.2)

master secret || client random || server random

PRF TLS 1.2 (zdefiniowany w RFC 5246) używa HMAC-SHA-384 dla zestawów szyfrów wynegocjowanych z SHA-384. Master secret jest wyprowadzany z pre-master secret za pomocą P_SHA384(pre_master_secret, 'master secret' || ClientHello.random || ServerHello.random). HKDF-SHA-384 (RFC 5869) rozszerza ten wzorzec dla ogólnego wyprowadzania kluczy i jest używany również w harmonogramie kluczy TLS 1.3 oraz IKEv2 (IPsec). Wklej dowolny materiał seed tutaj, aby wygenerować odcisk SHA-384 przed zastosowaniem HMAC — pierwszy krok w debugowaniu potoku wyprowadzania kluczy.

Odcisk tajnego dokumentu NSA Suite B

CLASSIFIED//TS//SI//NF — Document ID: TSC-2026-0001

Profil kryptografii NSA Suite B (CNSSP-15, zastąpiony przez CNSA Suite w 2018 roku) nakazywał SHA-384 dla integralności dokumentów ściśle tajnych. Systemy wywiadu tworzą odciski tajnych dokumentów za pomocą SHA-384 w celu wykrywania manipulacji. Wynikowy 96-znakowy ciąg hex jest przechowywany w manifeście dokumentu obok ładunku zaszyfrowanego AES-256-GCM. Wklej dowolny nagłówek lub identyfikator dokumentu tutaj, aby wygenerować odcisk SHA-384 — przydatne przy audytowaniu starszych archiwów zgodnych z Suite B lub walidacji, że system przechodzący na CNSA nadal produkuje poprawne wyjścia SHA-384.

Uwierzytelnianie wiadomości HMAC-SHA-384

POST /api/v2/transfer
Content-Type: application/json
{"amount":10000,"to":"account-XYZ"}

HMAC-SHA-384 jest używany w wysokich gwarancjach interfejsów API do uwierzytelniania treści żądań. Serwer oblicza HMAC-SHA-384(secret_key, canonical_request) i dołącza hex digest do nagłówka Authorization; klient odtwarza obliczenie i porównuje. Ponieważ SHA-384 jest odporny na rozszerzenie długości nawet w formie surowej (bez HMAC), zapewnia dodatkowy margines bezpieczeństwa ponad HMAC-SHA-256 w scenariuszach, gdzie surowy hash może być ujawniony. Wklej treść żądania tutaj, aby sprawdzić hash SHA-384 przed dodaniem klucza HMAC.

Jak generować hashe SHA-384

  1. 1

    Wklej tekst lub upuść plik

    Wybierz zakładkę Tekst i wklej dowolny ciąg — identyfikator dokumentu, treść żądania lub dowolne dane wejściowe — do obszaru wejściowego. Hash SHA-384 aktualizuje się na bieżąco podczas pisania. W przypadku plików przełącz na zakładkę Plik i przeciągnij dowolny plik do strefy upuszczania; przeglądarka hashuje go lokalnie za pomocą Web Crypto API bez przesyłania. Dla dużych plików (>10 MB) pojawia się wskaźnik postępu.

  2. 2

    Skopiuj 96-znakowy hash

    Kliknij przycisk Kopiuj obok wyjścia hash. Pełny 96-znakowy ciąg hex małymi literami trafia do schowka — gotowy do wklejenia do konfiguracji TLS, raportu zgodności lub implementacji HMAC. Użyj przełącznika Wielkie litery, jeśli system docelowy wymaga wielkich liter hex.

  3. 3

    Porównaj ze znanych hashem

    Przełącz na zakładkę Porównaj i wklej dwa hashe SHA-384 obok siebie. Narzędzie zgłasza zgodność lub niezgodność za pomocą porównania w stałym czasie, które nie ujawnia informacji o czasie. Przydatne do weryfikacji hashy zgodności Suite B, porównywania kluczy wyprowadzonych HKDF-SHA-384 między implementacjami lub sprawdzania odcisków dokumentów w audytach archiwów tajnych.

Szczegóły techniczne

Algorytm: SHA-512 z innym IV, wyjście skrócone do 384 bitów
SHA-384 jest strukturalnie identyczny z SHA-512 (FIPS 180-4 sekcja 6.5). Oba używają 80 rund 64-bitowych operacji (funkcje Ch, Maj, Σ0, Σ1) ze stałymi pochodnymi od pierwiastków sześciennych i kwadratowych pierwszych 80 liczb pierwszych. Wektor inicjalizacji (osiem 64-bitowych słów) różni się od IV SHA-512 — IV SHA-384 jest pochodną ułamkowych części pierwiastków kwadratowych 9. do 16. liczby pierwszej. Po przetworzeniu wyprowadzanych jest pierwsze sześć 64-bitowych słów z ośmiosłowowego stanu (384 bity); dwa ostatnie słowa są odrzucane.
Wyjście: 384 bity, 96 znaków hex
Zawsze dokładnie 96 małych liter szesnastkowych (384 bity = 48 bajtów, każdy bajt zakodowany jako 2 znaki hex). Stała długość niezależnie od rozmiaru wejścia. 96-znakowa długość to natychmiastowy odcisk odróżniający SHA-384 od SHA-256 (64 znaki) i SHA-512 (128 znaków). Odrzucone 128 bitów — dwa ostatnie 64-bitowe słowa stanu — sprawiają, że SHA-384 jest odporny na rozszerzenie długości.
Wydajność: identyczna z SHA-512 na sprzęcie 64-bitowym
SHA-384 i SHA-512 wykonują tę samą sekwencję instrukcji na procesorach 64-bitowych. Oba używają 1024-bitowych (128-bajtowych) bloków wejściowych, przetwarzanych z 64-bitowymi rotacjami i dodawaniami. Przepustowość wynosi zazwyczaj 500–900 MB/s w przeglądarce za pomocą Web Crypto API (który wywołuje natywny kod C/Rust poza maszyną wirtualną JS) i 1–3 GB/s w natywnych narzędziach ze sprzętowymi rozszerzeniami SHA.
Standardy: FIPS 180-4, legacy NSA Suite B, aktualny CNSA
Wystandaryzowany w FIPS 180-2 (2001), aktualna wersja FIPS 180-4 (2015). Wymagany przez NSA Suite B (CNSSP-15, 2005) dla ściśle tajnego, nadal obecny w CNSA Suite (2015). Określony dla TLS w RFC 5246 (PRF TLS 1.2 z zestawami szyfrów SHA-384), RFC 8446 (algorytm podpisu TLS 1.3 ecdsa_secp384r1_sha384) i RFC 5869 (HKDF). Zatwierdzone przez NIST dla wszystkich poziomów siły bezpieczeństwa do 2030 roku i dalej zgodnie z NIST SP 800-131A Rev 2.

Najlepsze praktyki

Używaj SHA-384, gdy liczy się odporność na rozszerzenie długości bez HMAC
Jeśli protokół ujawnia surowe wyjście hash i atakujący mógłby próbować rozszerzyć wiadomość (np. w pewnych schematach podpisanych URL lub challenge-response), SHA-384 zapewnia wbudowaną odporność na rozszerzenie długości, której SHA-256 nie posiada. We wszystkich innych zastosowaniach opartych na kluczu stosuj HMAC niezależnie od bazowego hash — HMAC-SHA-256 i HMAC-SHA-384 są oba bezpieczne, a HMAC eliminuje ataki rozszerzenia długości dla dowolnego wariantu SHA-2.
Paruj z AES-256-GCM dla zgodności z Suite B / CNSA
Jeśli budujesz system, który musi być zgodny z wymaganiami NSA Suite B lub CNSA, kanonicznym parowaniem jest AES-256-GCM dla szyfrowania masowego i SHA-384 dla integralności i wyprowadzania kluczy. TLS 1.2 z ECDHE-ECDSA-AES256-GCM-SHA384 to referencyjny zestaw szyfrów. Dla TLS 1.3 odpowiednikiem jest TLS_AES_256_GCM_SHA384 z ecdsa_secp384r1_sha384 jako algorytmem podpisu. Potwierdź, że biblioteka TLS faktycznie negocjuje te zestawy szyfrów.
Używaj HMAC-SHA-384 dla MAC opartego na kluczu w kontekstach PRF TLS 1.2
PRF TLS 1.2 używa HMAC-SHA-384 dla zestawów szyfrów, gdzie SHA-384 był wynegocjowany (RFC 5246 sekcja 5). Jeśli implementujesz lub testujesz PRF TLS 1.2: PRF(secret, label, seed) = P_SHA384(secret, label + seed). Nie zastępuj HMAC-SHA-256 w kontekście zestawu szyfrów SHA-384 — negocjacja zestawu szyfrów określa hash PRF, a niezgodność powoduje niepowodzenie uzgadniania. Weryfikuj za pomocą wektorów testowych z RFC 5705 lub RFC 6070.
Używaj porównania w stałym czasie przy weryfikacji hashy SHA-384 w kodzie
Jeśli porównujesz dwa hashe SHA-384 w kodzie — weryfikując odcisk dokumentu, sprawdzając MAC — użyj sprawdzania równości w stałym czasie: crypto.timingSafeEqual() w Node.js, hmac.compare_digest() w Pythonie, subtle.ConstantTimeCompare() w Go. Naiwna równość ciągów (=== lub ==) ujawnia informacje o czasie, które mogą pozwolić atakującemu na odtworzenie oczekiwanego hasha bajt po bajcie w ~768 porównaniach (96 znaków × 8 bitów).

Najczęściej zadawane pytania

Dlaczego używać SHA-384 zamiast SHA-256?
Dwa powody: odporność na rozszerzenie długości i zgodność z Suite B. SHA-384 jest odporny na ataki rozszerzenia długości, ponieważ skrócenie 512-bitowego stanu SHA-512 do 384 bitów odrzuca 128 bitów stanu wewnętrznego — atakujący, który zna SHA-384(wiadomość), nie może obliczyć SHA-384(wiadomość || rozszerzenie) bez znajomości pełnej wiadomości. SHA-256 jest podatny na ataki rozszerzenia długości, dlatego do kluczowego użycia SHA-256 wymagana jest konstrukcja HMAC. Ponadto SHA-384 był wymagany przez NSA Suite B na poziomie ściśle tajnym i pozostaje powszechny w zestawach szyfrów TLS (ECDHE-ECDSA-AES256-GCM-SHA384) i systemach rządowych przechodzących na CNSA Suite.
Czy SHA-384 jest tak samo bezpieczny jak SHA-512?
Tak, pod względem odporności na kolizje. SHA-384 zapewnia 192 bity odporności na kolizje (połowa 384 bitów) wobec 256 bitów SHA-512 — oba są daleko poza zasięgiem jakiegokolwiek przewidywalnego ataku. SHA-384 zapewnia tę samą odporność na drugi pre-image co SHA-512 w praktyce. Jedyną istotną różnicą jest długość wyjścia: 96 znaków hex vs 128 znaków hex. Jeśli potrzebujesz maksymalnej odporności na kolizje dla wyjątkowo długowiecznych archiwów (powyżej 50 lat), SHA-512 zapewnia większy margines — ale dla każdego aktualnego systemu SHA-384 jest w pełni wystarczający.
Czy SHA-384 ma taką samą szybkość jak SHA-512?
Tak — to dosłownie ten sam algorytm. SHA-384 to SHA-512 z innym wektorem inicjalizacji (IV) i wyjściem skróconym do pierwszych 384 bitów. Ponieważ oba używają przez cały czas 64-bitowej arytmetyki słów, działają z identyczną szybkością na sprzęcie 64-bitowym. SHA-384 i SHA-512 są zazwyczaj szybsze od SHA-256 na maszynach 64-bitowych — SHA-256 używa 32-bitowej arytmetyki słów i przetwarza mniejsze bloki 512-bitowe, wymagając więcej przebiegów dla tych samych danych wejściowych. Typowa przepustowość: 500–900 MB/s w przeglądarce, porównywalne z natywnymi narzędziami.
Kiedy HMAC-SHA-384 ma znaczenie ponad HMAC-SHA-256?
W uzgadnianiach TLS 1.2 wynegocjowanych z zestawami szyfrów SHA-384, PRF to HMAC-SHA-384 — jest to twarde wymaganie protokołu, nie wybór. Poza TLS, preferuj HMAC-SHA-384, gdy: (1) celujesz w zgodność z Suite B / CNSA, (2) system obsługuje dane sklasyfikowane powyżej SECRET, lub (3) chcesz dodatkowego marginesu przeciwko przyszłym postępom w zakresie bezpieczeństwa 128-bitowego. Dla ogólnych MAC, gdzie żadne z powyższych nie ma zastosowania, HMAC-SHA-256 jest standardem dobrze przetestowanym w różnych bibliotekach.
Czy powinienem używać SHA-384 do ogólnego hashowania?
Nie, chyba że masz konkretny powód. SHA-256 jest standardem branżowym dla integralności pliku, sum kontrolnych, obiektów Git, podpisów JWT i odcisków certyfikatów — jest powszechnie obsługiwany i zapewnia 128 bitów odporności na kolizje, wystarczające do każdego praktycznego zastosowania. SHA-384 ma sens, gdy potrzebujesz (1) odporności na rozszerzenie długości bez owijania HMAC, (2) zgodności z Suite B / CNSA, lub (3) interoperacyjności z zestawami szyfrów TLS nakazującymi SHA-384. W pozostałych przypadkach SHA-256 jest prostszy i równie bezpieczny.
Czym jest NSA Suite B i czy nadal jest używany?
NSA Suite B to zestaw algorytmów kryptograficznych zatwierdzonych do ochrony tajnych informacji USA, opublikowany przez NSA w 2005 roku (CNSSP-15). Suite B wymagał SHA-256 dla SECRET i SHA-384 dla ściśle tajnego. W 2015 roku NSA ogłosiło przejście od Suite B do Commercial National Security Algorithm Suite (CNSA), motywowane obawami o kryptografię postkwantową — algorytmy krzywych eliptycznych Suite B (P-256, P-384) mogłyby zostać złamane przez wystarczająco duży komputer kwantowy. SHA-384 został jednak zachowany w CNSA obok SHA-256. Wiele systemów rządowych i obronnych zbudowanych zgodnie z Suite B nadal używa SHA-384, a zestawy szyfrów TLS pierwotnie wymagane przez Suite B (jak ECDHE-ECDSA-AES256-GCM-SHA384) pozostają szeroko wdrożone w sieciach rządowych.
Jak długi jest hash SHA-384?
Zawsze dokładnie 96 znaków szesnastkowych — 384 bity podzielone na 48 bajtów, każdy bajt zakodowany jako dwa znaki hex. Długość wyjścia jest stała niezależnie od rozmiaru wejścia; wiadomość 1-bajtowa i plik 10 GB produkują 96 znaków hex. Dla porównania: SHA-256 produkuje 64 znaki hex, SHA-512 produkuje 128 znaków hex, MD5 produkuje 32 znaki hex. 96-znakowe wyjście to natychmiastowy sygnał, że hash został wyprodukowany przez SHA-384.
Czy moje dane są wysyłane na serwer?
Nie. SHA-384 jest obliczany całkowicie w przeglądarce za pomocą Web Crypto API (crypto.subtle.digest('SHA-384', data)). Otwórz Narzędzia deweloperskie → zakładka Sieć podczas hashowania — zobaczysz zero wychodzących żądań. Pliki upuszczone są odczytywane przez FileReader API i hashowane lokalnie; bajty nigdy nie opuszczają maszyny. Sprawia to, że narzędzie jest bezpieczne do hashowania odcisków tajnych dokumentów, materiału klucza prywatnego TLS lub dowolnych innych danych wrażliwych. Ta sama gwarancja prywatności dotyczy generatora SHA-256 i generatora SHA-512.

Powiązane narzędzia

Zobacz wszystkie narzędzia →