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.
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
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
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
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?
Czy SHA-384 jest tak samo bezpieczny jak SHA-512?
Czy SHA-384 ma taką samą szybkość jak SHA-512?
Kiedy HMAC-SHA-384 ma znaczenie ponad HMAC-SHA-256?
Czy powinienem używać SHA-384 do ogólnego hashowania?
Czym jest NSA Suite B i czy nadal jest używany?
Jak długi jest hash SHA-384?
Czy moje dane są wysyłane na serwer?
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 →Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.
Generator SHA-1 hash (160-bitowy, przestarzały)
Narzędzia bezpieczeństwa
Generuj hash SHA-1 online — 40-znakowy wynik hex, bez przesyłania. Narzędzie dla odcisków Git, weryfikacji starych certyfikatów i audytów migracji. Dane nie opuszczają urządzenia.
Generator SHA-256 hash i sum kontrolnych
Narzędzia bezpieczeństwa
Generuj hashe SHA-256 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne, kopiuj 64-znakowy wynik hex. Bez rejestracji — dane nie opuszczają strony.
Generator SHA-3 hash (Keccak SHA3-256)
Narzędzia bezpieczeństwa
Generuj hashe SHA-3 online za darmo. Konstrukcja gąbki NIST FIPS 202 — standard po SHA-2. Wyjście SHA3-256 w 64 znakach hex. Tylko przeglądarka przez lazy-loaded js-sha3; zero przesyłania.