Generator Hasha SHA-384

Generuj hash SHA-384 z dowolnego tekstu

Tekst wejściowy

Działa lokalnie · Bezpieczne do wklejania sekretów

Hash SHA-384

Hash SHA-384 będzie wyświetlany tutaj…

Czym jest haszowanie SHA-384?

SHA-384 to kryptograficzna funkcja skrótu zdefiniowana w NIST FIPS 180-4 jako część rodziny SHA-2. Przyjmuje dane wejściowe o dowolnej długości i produkuje stały 384-bitowy (48-bajtowy) skrót wiadomości, konwencjonalnie przedstawiany jako 96-znakowy ciąg szesnastkowy. SHA-384 jest szeroko stosowany w zestawach szyfrów TLS, podpisach cyfrowych certyfikatów oraz systemach rządowych wymagających większego marginesu odporności na kolizje niż oferuje SHA-256.

Wewnętrznie SHA-384 jest skróconą odmianą SHA-512. Używa tego samego 1024-bitowego rozmiaru bloku, 80 rund kompresji i 64-bitowej arytmetyki słów co SHA-512, ale rozpoczyna z innym zestawem początkowych wartości skrótu (wyprowadzonych z 9. do 16. liczby pierwszej) i zwraca tylko pierwsze 384 bity stanu końcowego. To skrócenie oznacza, że SHA-384 produkuje inny skrót niż SHA-512 dla identycznych danych wejściowych, mimo że oba algorytmy dzielą ten sam rdzeń.

Ponieważ SHA-384 operuje na 64-bitowych słowach, działa szybciej niż SHA-256 na nowoczesnych procesorach 64-bitowych, jednocześnie dostarczając większy skrót. Stanowi praktyczny punkt środkowy: silniejszy niż SHA-256 (192-bitowa odporność na kolizje wobec 128-bitowej) bez narzutu pamięciowego związanego z 128-znakowym wyjściem hex SHA-512. SHA-384 jest domyślnym hashem dla podpisów weryfikacyjnych certyfikatów TLS 1.3 i jest wymagany przez NSA Suite B (obecnie CNSA) do danych TOP SECRET.

Po co używać generatora SHA-384 online?

Generowanie skrótów SHA-384 zazwyczaj wymaga polecenia w terminalu lub napisania kodu. To narzędzie działające w przeglądarce pozwala obliczać skróty SHA-384 natychmiast — bez instalowania czegokolwiek ani przesyłania danych na serwer. Niezależnie od tego, czy potrzebujesz wygenerować hash SRI dla zasobu CDN, zweryfikować sumę kontrolną pliku, czy porównać wynik SHA-384 z SHA-256 dla tych samych danych wejściowych, to narzędzie daje Ci natychmiastowy, bezzależnościowy dostęp do skrótów SHA-384 w każdej nowoczesnej przeglądarce.

Natychmiastowe obliczenia w przeglądarce
Wklej tekst i natychmiast otrzymaj 96-znakowy skrót SHA-384. Web Crypto API obsługuje obliczenia natywnie w Twojej przeglądarce — bez żadnych zewnętrznych zależności.
🔒
Haszowanie z zachowaniem prywatności
Twoje dane wejściowe nigdy nie opuszczają urządzenia. Całe haszowanie odbywa się lokalnie za pośrednictwem Web Crypto API — żadnych żądań do serwera, żadnych logów, żadnego przechowywania danych.
📋
Formaty wyjściowe gotowe do skopiowania
Przełączaj między wyjściem hex małymi i wielkimi literami jednym kliknięciem. Skopiuj hash do schowka i użyj go w plikach sum kontrolnych, konfiguracji lub dokumentacji.
🔍
Bez konta i instalacji
Działa w każdej nowoczesnej przeglądarce — Chrome, Firefox, Safari, Edge. Bez rejestracji, bez rozszerzeń, bez konfiguracji wiersza poleceń.

Zastosowania generatora SHA-384

Weryfikacja certyfikatów TLS
TLS 1.2 i 1.3 używają SHA-384 podczas weryfikacji podpisów certyfikatów i w PRF (pseudorandom function). Obliczaj skróty SHA-384, aby weryfikować odciski palca certyfikatów względem oczekiwanych wartości podczas audytów bezpieczeństwa.
Subresource Integrity (SRI)
Generuj skróty SHA-384 dla plików JavaScript i CSS ładowanych z CDN. Atrybut integrity w znacznikach script i link domyślnie używa SHA-384 zakodowanego w Base64 w większości generatorów SRI.
Systemy rządowe i zgodności
CNSA (dawniej NSA Suite B) nakazuje stosowanie SHA-384 do ochrony informacji niejawnych. Generuj skróty, aby weryfikować integralność dokumentów w procesach zgodności wymagających algorytmów FIPS 180-4.
Weryfikacja integralności plików
Obliczaj sumy kontrolne SHA-384 dla obrazów firmware, wydań oprogramowania lub plików konfiguracyjnych. Porównuj hash przed i po przesyłaniu, aby wykryć uszkodzenia lub modyfikacje.
Wyprowadzanie klucza HMAC-SHA384
SHA-384 współpracuje z HMAC przy uwierzytelnianiu wiadomości w protokołach takich jak IPsec i TLS. Użyj tego narzędzia do weryfikacji oczekiwanych wyników hash podczas debugowania implementacji HMAC-SHA384.
Ćwiczenia akademickie z kryptografii
Studenci studiujący rodzinę SHA-2 mogą porównywać wyniki SHA-384 z SHA-256 i SHA-512 dla tych samych danych wejściowych, aby zaobserwować, jak różne wektory inicjalizacji i skrócenie produkują odmienne skróty.

Porównanie wariantów rodziny SHA-2

SHA-384 należy do rodziny SHA-2 obok kilku innych wariantów. Poniższa tabela pokazuje, czym różnią się pod względem rozmiaru skrótu, długości wyjścia i typowych zastosowań.

WariantRozmiar skrótuDługość hexBajtyNajlepszy do
SHA-384384 bits96 hex chars48 bytesTLS 1.2/1.3, government/CNSA, certificate signatures
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-384 kontra SHA-256 kontra SHA-512 kontra SHA-3-384

Wybór między SHA-384 a innymi algorytmami skrótu zależy od wymagań bezpieczeństwa, ograniczeń platformy i potrzeb wydajnościowych. To porównanie obejmuje najistotniejsze właściwości.

WłaściwośćSHA-384SHA-256SHA-512SHA-3-384
Digest size384 bits (96 hex)256 bits (64 hex)512 bits (128 hex)384 bits (96 hex)
Internal state512 bits (8x64-bit)256 bits (8x32-bit)512 bits (8x64-bit)1600 bits (sponge)
Block size1024 bits512 bits1024 bits832 bits
Rounds80648024
Word size64 bits32 bits64 bitsN/A (sponge)
Length extensionResistantVulnerableVulnerableResistant
64-bit performanceFast (native ops)Slower (32-bit ops)Fast (native ops)Moderate
StandardFIPS 180-4FIPS 180-4FIPS 180-4FIPS 202
Web Crypto APIYesYesYesNo

Jak SHA-384 działa wewnętrznie?

SHA-384 przetwarza dane wejściowe przez tę samą konstrukcję Merkle–Damgård co SHA-512. Dane wejściowe są dopełniane do wielokrotności 1024 bitów, dzielone na bloki, a każdy blok jest przetwarzany przez 80 rund mieszania z użyciem funkcji Ch, Maj i dwóch funkcji Sigma z 64-bitową arytmetyką słów. Kluczowa różnica w stosunku do SHA-512 tkwi w początkowych wartościach skrótu: SHA-384 używa wartości wyprowadzonych z części ułamkowych pierwiastków kwadratowych z 9. do 16. liczby pierwszej, podczas gdy SHA-512 używa pierwszych 8 liczb pierwszych. Po przetworzeniu wszystkich bloków SHA-384 skraca 512-bitowy stan wewnętrzny do pierwszych 384 bitów.

Input: "hello world"
SHA-384: fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
(384 bits = 48 bytes = 96 hex characters)

Skrócenie i różna inicjalizacja oznaczają, że SHA-384 i SHA-512 zawsze produkują różne skróty dla tych samych danych wejściowych. Sprawia to również, że SHA-384 jest z natury odporny na ataki rozszerzenia długości (length-extension attacks), w odróżnieniu od SHA-256 i SHA-512, gdzie atakujący może dołączyć dane i obliczyć prawidłowy hash bez znajomości oryginalnej wiadomości.

Przykłady kodu SHA-384

SHA-384 jest obsługiwany natywnie we wszystkich głównych językach programowania i środowiskach uruchomieniowych. Poniżej znajdziesz działające przykłady, które możesz skopiować bezpośrednio do swoich projektów.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha384(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-384', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha384('hello world')
// → "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha384').update('hello world').digest('hex')
// → "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd"
Python
import hashlib

# Basic SHA-384 hash
result = hashlib.sha384(b'hello world').hexdigest()
print(result)
# → "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd"

# Hash a string with Unicode characters
text = 'café ☕'
hashlib.sha384(text.encode('utf-8')).hexdigest()
# → 96-character hex string

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha384()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha512"
    "fmt"
)

func main() {
    data := []byte("hello world")
    // SHA-384 lives in the crypto/sha512 package
    hash := sha512.Sum384(data)
    fmt.Printf("%x\n", hash)
    // → fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
}
CLI (Linux / macOS)
# Using sha384sum (Linux)
echo -n "hello world" | sha384sum
# → fdbd8e75a67f29f701a4e040385e2e23...  -

# macOS
echo -n "hello world" | shasum -a 384
# → fdbd8e75a67f29f701a4e040385e2e23...  -

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha384
# → SHA2-384(stdin)= fdbd8e75a67f29f701a4e040385e2e23986303ea...

# Verify a file checksum
sha384sum myfile.bin > checksum.txt
sha384sum -c checksum.txt
# → myfile.bin: OK

Najczęściej zadawane pytania

Jaka jest różnica między SHA-384 a SHA-512?
SHA-384 i SHA-512 używają tej samej funkcji kompresji, rozmiaru bloku (1024 bity) i liczby rund (80). Różnią się w dwóch aspektach: SHA-384 rozpoczyna z innymi początkowymi wartościami skrótu (wyprowadzonymi z liczb pierwszych 9–16 zamiast 1–8) i zwraca jedynie pierwsze 384 bity 512-bitowego stanu wewnętrznego. Oznacza to, że zawsze produkują różne skróty dla tych samych danych wejściowych.
Czy SHA-384 jest bezpieczniejszy niż SHA-256?
SHA-384 zapewnia 192 bity odporności na kolizje w porównaniu do 128 bitów SHA-256, opartych na granicy ataku urodzinowego równej połowie długości skrótu. Dla odporności na atak pierwotnego obrazu SHA-384 oferuje 384 bity wobec 256 bitów. W praktyce oba są uznawane za bezpieczne dla obecnych modeli zagrożeń, ale SHA-384 zapewnia większy margines bezpieczeństwa dla długoterminowej ochrony danych i jest wymagany przez niektóre standardy rządowe.
Dlaczego TLS używa SHA-384 zamiast SHA-512?
Zestawy szyfrów TLS, takie jak TLS_AES_256_GCM_SHA384, używają SHA-384, ponieważ zapewnia wystarczającą odporność na kolizje (192 bity) przy zachowaniu rozsądnych rozmiarów skrótu. 128-znakowe wyjście hex SHA-512 dodaje narzut w komunikatach uzgadniania połączenia i łańcuchach certyfikatów bez proporcjonalnych korzyści bezpieczeństwa dla zastosowań TLS. SHA-384 jest też zgodny z 192-bitowym poziomem bezpieczeństwa docelowym dla AES-256.
Jak SHA-384 jest używany w Subresource Integrity (SRI)?
Znaczniki SRI w HTML używają formatu integrity="sha384-{base64hash}" do weryfikacji, czy skrypty i arkusze stylów pobrane z CDN nie zostały zmodyfikowane. Przeglądarka oblicza hash SHA-384 pobranego pliku i porównuje go z oczekiwaną wartością. Jeśli wartości się nie zgadzają, zasób jest blokowany. SHA-384 jest najczęściej stosowanym algorytmem w SRI, ponieważ balansuje bezpieczeństwo i rozmiar skrótu.
Czy SHA-384 można odwrócić, aby odzyskać oryginalne dane?
Nie. SHA-384 jest z założenia funkcją jednokierunkową. Posiada 384 bity odporności na atak pierwotnego obrazu, co oznacza, że nie istnieje żadna znana metoda odzyskania danych wejściowych ze skrótu SHA-384 szybsza niż przeszukiwanie metodą brute-force spośród 2^384 możliwości. Jednak krótkie lub przewidywalne dane wejściowe (jak popularne hasła) można znaleźć za pomocą wstępnie obliczonych tęczowych tablic lub ataków słownikowych — dlatego hasła powinny być haszowane za pomocą dedykowanych algorytmów, takich jak bcrypt lub Argon2.
Czy SHA-384 jest obsługiwany w Web Crypto API?
Tak. Wszystkie nowoczesne przeglądarki implementują SHA-384 przez crypto.subtle.digest('SHA-384', data). To ten sam interfejs API, którego używa to narzędzie. Jest on również dostępny w Node.js 18+ i Deno. Web Crypto API zwraca ArrayBuffer, który konwertujesz na ciąg szesnastkowy, mapując każdy bajt na jego dwuznakową reprezentację szesnastkową.
Kiedy powinienem używać SHA-384 zamiast SHA-256?
Używaj SHA-384, gdy Twoja polityka bezpieczeństwa wymaga więcej niż 128 bitów odporności na kolizje, gdy potrzebujesz zgodności z CNSA/Suite B dla danych niejawnych, lub gdy już używasz AES-256 i chcesz zgodnego 192-bitowego poziomu bezpieczeństwa. SHA-384 działa też szybciej niż SHA-256 na procesorach 64-bitowych dzięki natywnym operacjom na 64-bitowych słowach. Dla większości aplikacji internetowych i ogólnego haszowania SHA-256 pozostaje standardowym wyborem.