Skip to content

SHA-384 Hash Generator (TLS Suite B hash)

Genereer SHA-384 hashes online — 96-tekens hex output, immuun voor length-extension, NSA Suite B-compliant. Gecombineerd met AES-256-GCM in TLS. Alle hash-berekeningen in je browser via Web Crypto API.

Geen tracking Draait in je browser Gratis
Alle hash-berekeningen worden lokaal in je browser uitgevoerd. Er worden geen gegevens naar een server verstuurd.
Algoritme
Beoordeeld op SHA-384 correctheid aan de hand van NIST FIPS 180-4 testvectoren; Suite B-belichting geverifieerd aan de hand van CNSSP-15 en CNSA Suite-documentatie — Go Tools Engineering Team · May 28, 2026

Wat is SHA-384?

SHA-384 is een 384-bit cryptografische hashfunctie in de SHA-2 familie, in 2001 gepubliceerd door NIST als onderdeel van FIPS 180-2. Het is architecturaal een afgekapte variant van SHA-512: beide algoritmen gebruiken identieke 64-bit woordrekenklunde, 80 compressierondes en 1024-bit invoerblokken — de enige verschillen zijn de initialisatievector (IV) en het feit dat SHA-384 de laatste 128 bits van SHA-512's 512-bit output weggooit, wat 384 bits (96 hexadecimale tekens) oplevert.

Waarom de afkapping cryptografisch van belang is: SHA-256 is kwetsbaar voor length-extension aanvallen — gegeven SHA-256(bericht) kan een aanvaller SHA-256(bericht || padding || extensie) berekenen zonder het originele bericht te kennen, door de hash-berekening te hervatten vanuit de gelekte interne toestand. SHA-384 elimineert dit aanvalsoppervlak: de afkapping gooit 128 bits interne toestand weg, zodat de gepubliceerde 384-bit hash niet genoeg informatie bevat om de SHA-512-berekening te hervatten. Dit maakt ruwe SHA-384 (zonder HMAC-wrapper) veilig voor constructies waarbij de hash-output kan worden blootgesteld aan aanvallers.

NSA Suite B en TLS-rol: SHA-384 was verplicht door NSA Suite B (CNSSP-15, 2005) voor TOP SECRET-classificatie. Het is het hash-algoritme in de ciphersuite ECDHE-ECDSA-AES256-GCM-SHA384, de standaard TLS 1.2-ciphersuite voor Suite B-compliant systemen en nog steeds breed ingezet in Amerikaanse overheids-, financiële en defensienetwerken. De CNSA Suite van de NSA (2015) behield SHA-384 naast SHA-256, en SHA-384 verschijnt in TLS 1.3's lijst van handtekeningalgoritmen (ecdsa_secp384r1_sha384).

Prestaties: Op 64-bit hardware draaien SHA-384 en SHA-512 met identieke snelheid — beide gebruiken uitsluitend 64-bit woordbewerkingen. Ze zijn doorgaans sneller dan SHA-256 (dat 32-bit woordbewerkingen gebruikt en meer stappen vereist voor dezelfde invoer) op moderne x86-64 en ARM64-processors.

Deze tool berekent SHA-384 volledig in je browser via crypto.subtle.digest('SHA-384', ...) van de Web Crypto API. De output is bit voor bit identiek aan wat sha384sum, openssl dgst -sha384 of Python's hashlib.sha384() produceren.

Wanneer SHA-384 gebruiken: TLS-ciphersuites die Suite B-compliance verplichten, HMAC-SHA-384 voor TLS 1.2 PRF, HKDF-SHA-384 sleutelafleiding, geclassificeerde documentvingerafdrukken en elke context waarbij length-extension immuniteit vereist is zonder HMAC-wrapper. Wanneer SHA-384 niet gebruiken: algemene checksums en dagelijks integriteitsgebruik — SHA-256 is de standaardkeuze daarvoor, met eenvoudigere bibliotheekondersteuning en universele toolcompatibiliteit.

// 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'

SHA-384 voorbeelden

TLS ciphersuite-handshake vingerafdruk

ECDHE-ECDSA-AES256-GCM-SHA384

De naam van de ciphersuite ECDHE-ECDSA-AES256-GCM-SHA384 is de canonieke Suite B ciphersuite voor TOP SECRET TLS-sessies. Het SHA-384 achtervoegsel verwijst naar de PRF (Pseudo-Random Function) die wordt gebruikt in de TLS 1.2-handshake om sessiesleutels af te leiden. Plak deze string om de SHA-384 hash van de naam van de ciphersuite te genereren — een snelle manier om te verifiëren dat je SHA-384 implementatie consistent is in alle omgevingen. In een echte TLS-sessie worden de certificaatketen, het pre-master-geheim en de handshake-transcript allemaal door HMAC-SHA-384 geleid als onderdeel van de TLS 1.2 PRF.

HKDF-SHA-384 sleutelafleiding (TLS 1.2 PRF)

master secret || client random || server random

De PRF van TLS 1.2 (gedefinieerd in RFC 5246) gebruikt HMAC-SHA-384 voor ciphersuites die zijn onderhandeld met SHA-384. Het master-geheim wordt afgeleid van het pre-master-geheim via P_SHA384(pre_master_secret, 'master secret' || ClientHello.random || ServerHello.random). HKDF-SHA-384 (RFC 5869) breidt dit patroon uit voor algemene sleutelafleiding en wordt ook gebruikt in het sleutelschema van TLS 1.3 en IKEv2 (IPsec). Plak hier willekeurig seed-materiaal om de SHA-384 vingerafdruk te genereren vóór het toepassen van HMAC — een eerste stap bij het debuggen van een sleutelafleiding-pipeline.

NSA Suite B geclassificeerde documentvingerafdruk

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

Het NSA Suite B cryptografisch profiel (CNSSP-15, vervangen door de CNSA Suite in 2018) verplichtte SHA-384 voor integriteit van TOP SECRET documenten. Inlichtingensystemen voorzien geclassificeerde documenten van SHA-384 vingerafdrukken om manipulatie te detecteren. De resulterende 96-tekens hex string wordt opgeslagen in het documentmanifest naast de AES-256-GCM-versleutelde payload. Plak hier een documentheader of ID-string om de SHA-384 vingerafdruk te genereren — handig bij het controleren van verouderde Suite B-archieven of het valideren dat een CNSA-migrerende systeem nog steeds correcte SHA-384 output produceert.

HMAC-SHA-384 berichtauthenticatie

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

HMAC-SHA-384 wordt gebruikt in high-assurance API's om aanvraagtekst te authenticeren. De server berekent HMAC-SHA-384(geheime_sleutel, canoniek_verzoek) en voegt de hex-samenvatting toe in een Authorization-header; de client reproduceert de berekening en vergelijkt. Omdat SHA-384 immuun is voor length-extension, zelfs in ruwe (niet-HMAC) vorm, biedt het een extra veiligheidsmarge boven HMAC-SHA-256 voor scenario's waarbij de ruwe hash kan worden blootgesteld — bijvoorbeeld in gedistribueerde logboedsystemen of ondertekende URL-schema's. Plak hier de aanvraagtekst om de SHA-384 hash te inspecteren vóór het toevoegen van je HMAC-sleutel.

Zo genereer je SHA-384 hashes

  1. 1

    Tekst plakken of bestand slepen

    Selecteer het tabblad Tekst en plak een willekeurige string — een document-ID, aanvraagtekst of willekeurige invoer — in het invoerveld. De SHA-384 hash wordt bijgewerkt terwijl je typt. Voor bestanden ga je naar het tabblad Bestand en sleep je een bestand naar de dropzone; de browser verwerkt het lokaal via de Web Crypto API zonder upload. Een voortgangsindicator verschijnt bij grote bestanden (>10 MB).

  2. 2

    De 96-tekens hash kopiëren

    Klik op de knop Kopiëren naast de hash output. De volledige 96-tekens hex string in kleine letters gaat naar je klembord — klaar om te plakken in een TLS-configuratie, nalevingsrapport of HMAC-implementatie. Gebruik de schakelaar Hoofdletters als je doelsysteem hoofdletters hex vereist.

  3. 3

    Vergelijken met een bekende hash

    Ga naar het tabblad Vergelijken en plak twee SHA-384 hashes naast elkaar. De tool meldt overeenkomst of geen overeenkomst via constante-tijd vergelijking, die geen timing-informatie lekt. Handig voor het verifiëren van Suite B-nalevings-hashes, het vergelijken van HKDF-SHA-384 afgeleide sleutels in verschillende implementaties, of het controleren van documentvingerafdrukken in geclassificeerde archiefaudits.

Technische details

Algoritme: SHA-512 met andere IV, output afgekapt tot 384 bits
SHA-384 is structureel identiek aan SHA-512 (FIPS 180-4 sectie 6.5). Beide gebruiken 80 rondes van 64-bit bewerkingen (Ch, Maj, Σ0, Σ1 functies) met constanten afgeleid van de kubieke en vierkantswortels van de eerste 80 priemgetallen. De initialisatievector (acht 64-bit woorden) verschilt van SHA-512's IV — SHA-384's IV is afgeleid van de fractionele delen van de vierkantswortels van het 9e t/m 16e priemgetal. Na verwerking worden de eerste zes 64-bit woorden van de acht-woord toestand als output gegeven (384 bits); de laatste twee woorden worden weggegooid.
Output: 384 bits, 96 hexadecimale tekens
Altijd precies 96 kleine hexadecimale tekens (384 bits = 48 bytes, elke byte gecodeerd als 2 hex-tekens). Vast van lengte, ongeacht de invoergrootte. De 96-tekens lengte is de onmiddellijke vingerafdruk die SHA-384 onderscheidt van SHA-256 (64 tekens) en SHA-512 (128 tekens). De weggegooid 128 bits — de laatste twee 64-bit toestandswoorden — maken SHA-384 bestand tegen length-extension aanvallen.
Prestaties: identiek aan SHA-512 op 64-bit hardware
SHA-384 en SHA-512 voeren dezelfde instructiereeks uit op 64-bit CPU's. Beide gebruiken 1024-bit (128-byte) invoerblokken, verwerkt met 64-bit rotaties en optellingen. Doorvoer is doorgaans 500–900 MB/s in een browser via de Web Crypto API (die native C/Rust-code buiten de JS VM aanroept), en 1–3 GB/s in native tools met hardware SHA-extensies. Op 32-bit hardware of zonder hardwareversnelling zijn SHA-384/512 langzamer dan SHA-256 vanwege emulatie van 64-bit gehele-getalsrekenklunde.
Standaarden: FIPS 180-4, NSA Suite B (verouderd), CNSA (huidig)
Gestandaardiseerd in FIPS 180-2 (2001), huidige versie FIPS 180-4 (2015). Vereist door NSA Suite B (CNSSP-15, 2005) voor TOP SECRET, nog steeds aanwezig in de CNSA Suite (2015). Gespecificeerd voor TLS in RFC 5246 (TLS 1.2 PRF met SHA-384 ciphersuites), RFC 8446 (TLS 1.3 handtekeningalgoritme ecdsa_secp384r1_sha384) en RFC 5869 (HKDF). Door NIST goedgekeurd voor alle beveiligingsniveaus tot 2030 en daarna onder NIST SP 800-131A Rev 2.

Aanbevolen aanpak

Gebruik SHA-384 wanneer length-extension immuniteit van belang is zonder HMAC
Als je protocol de ruwe hash-output blootstelt en een aanvaller zou kunnen proberen het bericht uit te breiden (bijv. bepaalde ondertekende URL- of challenge-response-schema's), biedt SHA-384 ingebouwde length-extension immuniteit die SHA-256 niet heeft. Pas voor al het andere gebruik met sleutel HMAC toe, ongeacht de onderliggende hash — HMAC-SHA-256 en HMAC-SHA-384 zijn beide veilig, en HMAC elimineert length-extension aanvallen voor elke SHA-2 variant.
Combineer met AES-256-GCM voor Suite B / CNSA-compliance
Als je een systeem bouwt dat moet voldoen aan NSA Suite B of CNSA-vereisten, is de canonieke combinatie AES-256-GCM voor bulkversleuteling en SHA-384 voor integriteit en sleutelafleiding. TLS 1.2 met ECDHE-ECDSA-AES256-GCM-SHA384 is de referentie-ciphersuite. Voor TLS 1.3 is het equivalent TLS_AES_256_GCM_SHA384 met ecdsa_secp384r1_sha384 als handtekeningalgoritme. Bevestig dat je TLS-bibliotheek deze ciphersuites daadwerkelijk onderhandelt — sommige standaardwaarden geven de voorkeur aan AES-128 varianten, zelfs op Suite B-geconfigureerde systemen.
Gebruik HMAC-SHA-384 voor keyed MAC in TLS 1.2 PRF-contexten
De PRF van TLS 1.2 gebruikt HMAC-SHA-384 voor ciphersuites waarbij SHA-384 is onderhandeld (RFC 5246 sectie 5). Als je een TLS 1.2 PRF implementeert of test: PRF(geheim, label, seed) = P_SHA384(geheim, label + seed). Vervang HMAC-SHA-256 niet in een SHA-384 ciphersuite context — de ciphersuite-onderhandeling bepaalt de PRF-hash, en het niet overeenkomen ervan veroorzaakt een handshake-fout. Verifieer met testvectoren van RFC 5705 (keying material exporters) of RFC 6070 (PBKDF2).
Gebruik constante-tijd vergelijking bij het verifiëren van SHA-384 hashes in code
Als je twee SHA-384 hashes in code vergelijkt — een documentvingerafdruk verifieert, een MAC controleert — gebruik dan een constante-tijd gelijkheidscontrole: Node.js crypto.timingSafeEqual(), Python hmac.compare_digest(), Go subtle.ConstantTimeCompare(). Naïeve stringvergelijking (=== of ==) lekt timing-informatie waarmee een aanvaller de verwachte hash byte voor byte kan reconstrueren in ~768 vergelijkingen (96 tekens × 8 bits). Dit is een kritieke defense-in-depth maatregel voor elk authenticatiesysteem.

Veelgestelde vragen over SHA-384

Waarom SHA-384 gebruiken in plaats van SHA-256?
Twee redenen: immuniteit voor length-extension en Suite B-compliance. SHA-384 is immuun voor length-extension aanvallen omdat het afkappen van SHA-512's 512-bit toestand naar 384 bits 128 bits interne toestand weggooit — een aanvaller die SHA-384(bericht) kent kan SHA-384(bericht || extensie) niet berekenen zonder het volledige bericht te kennen. SHA-256 is kwetsbaar voor length-extension aanvallen, waardoor voor het gebruik van SHA-256 met sleutel de HMAC-constructie vereist is. Bovendien was SHA-384 vereist door NSA Suite B op TOP SECRET-niveau en blijft het aanwezig in TLS-ciphersuites (ECDHE-ECDSA-AES256-GCM-SHA384) en overheidssystemen die overgaan naar de CNSA Suite.
Is SHA-384 even veilig als SHA-512?
Ja, wat betreft collision-weerstand. SHA-384 biedt 192 bits collision-weerstand (de helft van 384 bits) versus SHA-512's 256 bits — beide zijn ver buiten elke voorzienbare aanval. SHA-384 biedt in de praktijk dezelfde second-preimage weerstand als SHA-512. Het enige betekenisvolle verschil is de output-lengte: 96 hex-tekens versus 128 hex-tekens. Als je maximale collision-weerstand nodig hebt voor zeer langdurige archieven (meer dan 50 jaar), biedt SHA-512 een grotere marge — maar voor elk huidig systeem is SHA-384 volledig toereikend.
Is SHA-384 even snel als SHA-512?
Ja — het zijn letterlijk hetzelfde algoritme. SHA-384 is SHA-512 met een andere initialisatievector (IV) en de output afgekapt tot de eerste 384 bits. Omdat beide uitsluitend 64-bit woordrekenklunde gebruiken, draaien ze met identieke snelheid op 64-bit hardware. Paradoxaal genoeg zijn SHA-384 en SHA-512 beide doorgaans sneller dan SHA-256 op 64-bit machines — SHA-256 gebruikt 32-bit woordrekenklunde en verwerkt 512-bit blokken, terwijl SHA-512 1024-bit blokken verwerkt in minder stappen. Typische doorvoer: 500–900 MB/s in een browser, vergelijkbaar met native tools.
Wanneer is HMAC-SHA-384 belangrijk boven HMAC-SHA-256?
In TLS 1.2-handshakes onderhandeld met SHA-384 ciphersuites is de PRF HMAC-SHA-384 — dit is een harde protocoleis, geen keuze. Buiten TLS geef je de voorkeur aan HMAC-SHA-384 wanneer: (1) je Suite B / CNSA-compliance nastreeft, (2) het systeem gegevens verwerkt die hoger zijn geclassificeerd dan SECRET, of (3) je een extra marge wilt tegen toekomstige aanvallen op 128-bit beveiliging. Voor algemene MAC's waarbij dit niet van toepassing is, is HMAC-SHA-256 standaard en goed getest in alle bibliotheken.
Moet ik SHA-384 gebruiken voor algemeen hashen?
Niet tenzij je een specifieke reden hebt. SHA-256 is de industriestandaard voor bestandsintegriteit, checksums, Git-objecten, JWT-handtekeningen en certificaatvingerafdrukken — het is universeel ondersteund en biedt 128 bits collision-weerstand, meer dan genoeg voor praktisch gebruik. SHA-384 is zinvol wanneer je (1) length-extension immuniteit zonder HMAC-wrapper nodig hebt, (2) Suite B / CNSA-compliance vereist is, of (3) interoperabiliteit met TLS-ciphersuites die SHA-384 verplichten. Voor al het andere is SHA-256 eenvoudiger en even veilig.
Wat is NSA Suite B en wordt het nog steeds gebruikt?
NSA Suite B was een set cryptografische algoritmen goedgekeurd voor het beschermen van Amerikaanse geclassificeerde informatie, gepubliceerd door de NSA in 2005 (CNSSP-15). Suite B vereiste SHA-256 voor SECRET en SHA-384 voor TOP SECRET. In 2015 kondigde de NSA een overgang aan van Suite B naar de Commercial National Security Algorithm Suite (CNSA), gedreven door post-quantum cryptografie-zorgen — de elliptische-curve-algoritmen van Suite B (P-256, P-384) konden uiteindelijk worden gebroken door een voldoende grote kwantumcomputer. SHA-384 bleef echter behouden in CNSA naast SHA-256. Veel overheids- en defensiesystemen gebouwd voor Suite B-compliance gebruiken nog steeds SHA-384, en TLS-ciphersuites die oorspronkelijk door Suite B werden vereist (zoals ECDHE-ECDSA-AES256-GCM-SHA384) zijn nog steeds breed ingezet in overheidsnetwerken.
Hoe lang is een SHA-384 hash?
Altijd precies 96 hexadecimale tekens — 384 bits gedeeld door 48 bytes, elke byte gecodeerd als twee hex-tekens. De output-lengte is vast, ongeacht de invoergrootte; een bericht van 1 byte en een bestand van 10 GB produceren beide 96 hex-tekens. Vergelijk: SHA-256 produceert 64 hex-tekens, SHA-512 produceert 128 hex-tekens, MD5 produceert 32 hex-tekens. De 96-tekens output is het directe signaal dat een hash is geproduceerd door SHA-384.
Worden mijn gegevens naar een server verstuurd bij gebruik van deze tool?
Nee. SHA-384 wordt volledig in je browser berekend via de Web Crypto API (crypto.subtle.digest('SHA-384', data)). Open DevTools → tabblad Netwerk terwijl je hasht — je ziet nul uitgaande verzoeken. Bestanden die je toevoegt worden gelezen via de FileReader API en lokaal verwerkt; de bytes verlaten je machine nooit. Dit maakt de tool veilig voor het hashen van geclassificeerde documentvingerafdrukken, TLS privé-sleutelmateriaal of andere gevoelige invoer. Dezelfde privacygarantie geldt voor de SHA-256 generator en SHA-512 generator.

Gerelateerde tools

Alle tools bekijken →