Generatore Hash SHA-384

Genera hash SHA-384 da qualsiasi testo

Testo di Input

Esegue in locale · Sicuro per incollare segreti

Hash SHA-384

L'hash SHA-384 apparirà qui…

Cos'è l'Hashing SHA-384?

SHA-384 è una funzione hash crittografica definita nel NIST FIPS 180-4 come parte della famiglia SHA-2. Accetta un input di lunghezza arbitraria e produce un message digest fisso a 384 bit (48 byte), tipicamente visualizzato come stringa esadecimale di 96 caratteri. SHA-384 è ampiamente utilizzato nelle cipher suite TLS, nelle firme digitali dei certificati e nei sistemi governativi che richiedono un margine di resistenza alle collisioni superiore a quello offerto da SHA-256.

Internamente, SHA-384 è una variante troncata di SHA-512. Utilizza lo stesso block size a 1024 bit, 80 round di compressione e aritmetica a 64 bit di SHA-512, ma parte da un diverso insieme di valori hash iniziali (derivati dal 9° al 16° numero primo) e restituisce solo i primi 384 bit dello stato finale. Questa troncatura fa sì che SHA-384 produca un digest diverso da SHA-512 per input identici, pur condividendo lo stesso algoritmo di base.

Poiché SHA-384 opera su parole a 64 bit, risulta più veloce di SHA-256 sui moderni processori a 64 bit pur producendo un digest più grande. Questo lo rende un compromesso pratico: più robusto di SHA-256 (resistenza alle collisioni a 192 bit contro 128 bit) senza il costo in spazio dell'output esadecimale a 128 caratteri di SHA-512. SHA-384 è l'hash predefinito per le firme certificate verify in TLS 1.3 ed è richiesto da NSA Suite B (ora CNSA) per i dati TOP SECRET.

Perché Usare un Generatore SHA-384 Online?

Generare hash SHA-384 richiede di solito un comando da terminale o la scrittura di codice. Questo strumento basato su browser ti permette di calcolare digest SHA-384 istantaneamente senza installare nulla o inviare dati a un server. Che tu debba generare un hash SRI per una risorsa CDN, verificare un checksum di file o confrontare l'output SHA-384 con quello SHA-256 per lo stesso input, questo strumento offre un modo immediato e senza dipendenze per lavorare con i digest SHA-384 in qualsiasi browser moderno.

Calcolo istantaneo nel browser
Incolla il testo e ottieni immediatamente un hash SHA-384 di 96 caratteri. La Web Crypto API gestisce il calcolo in modo nativo nel tuo browser senza dipendenze esterne.
🔒
Hashing con privacy garantita
Il tuo input non lascia mai il tuo dispositivo. Tutto l'hashing viene eseguito localmente tramite la Web Crypto API — nessuna richiesta al server, nessun log, nessuna conservazione dei dati.
📋
Formati di output pronti alla copia
Passa dall'output esadecimale minuscolo a quello maiuscolo con un clic. Copia l'hash negli appunti per usarlo in file di checksum, configurazioni o documentazione.
🔍
Nessun account o installazione
Funziona in qualsiasi browser moderno — Chrome, Firefox, Safari, Edge. Nessuna registrazione, nessuna estensione, nessuna configurazione CLI richiesta.

Casi d'Uso del Generatore Hash SHA-384

Verifica dei Certificati TLS
TLS 1.2 e 1.3 usano SHA-384 nella verifica delle firme dei certificati e nella PRF (funzione pseudocasuale). Calcola digest SHA-384 per validare le impronte digitali dei certificati rispetto ai valori attesi durante i controlli di sicurezza.
Subresource Integrity (SRI)
Genera hash SHA-384 per file JavaScript e CSS caricati da CDN. L'attributo integrity nei tag script e link usa SHA-384 codificato in Base64 per impostazione predefinita nella maggior parte dei generatori SRI.
Sistemi Governativi e di Conformità
CNSA (ex NSA Suite B) impone SHA-384 per la protezione delle informazioni classificate. Genera hash per verificare l'integrità dei documenti nei flussi di lavoro di conformità che richiedono algoritmi FIPS 180-4.
Verifica dell'Integrità dei File
Calcola checksum SHA-384 per immagini firmware, versioni software o file di configurazione. Confronta l'hash prima e dopo il trasferimento per rilevare corruzione o manomissioni.
Derivazione di Chiavi HMAC-SHA384
SHA-384 si abbina con HMAC per l'autenticazione dei messaggi in protocolli come IPsec e TLS. Usa questo strumento per verificare gli output hash attesi durante il debug di implementazioni HMAC-SHA384.
Esercizi Accademici di Crittografia
Gli studenti che studiano la famiglia SHA-2 possono confrontare l'output di SHA-384 con quello di SHA-256 e SHA-512 per lo stesso input, per osservare come diversi vettori iniziali e la troncatura producano digest distinti.

Confronto delle Varianti della Famiglia SHA-2

SHA-384 appartiene alla famiglia SHA-2 insieme a diverse altre varianti. La tabella seguente mostra le differenze in termini di dimensione del digest, lunghezza dell'output e applicazioni tipiche.

VarianteDigestLunghezza HexByteIdeale Per
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 vs SHA-256 vs SHA-512 vs SHA-3-384

La scelta tra SHA-384 e altri algoritmi hash dipende dai requisiti di sicurezza, dai vincoli della piattaforma e dalle esigenze di prestazioni. Questo confronto copre le proprietà più rilevanti.

Proprietà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

Come Funziona SHA-384 Internamente

SHA-384 elabora l'input attraverso la stessa costruzione di Merkle–Damgård di SHA-512. L'input viene completato fino a un multiplo di 1024 bit, suddiviso in blocchi, e ogni blocco viene processato attraverso 80 round di mixing usando le funzioni Ch, Maj e due funzioni Sigma con aritmetica a 64 bit. La differenza chiave rispetto a SHA-512 è nei valori hash iniziali: SHA-384 usa valori derivati dalle parti frazionarie delle radici quadrate del 9° al 16° numero primo, mentre SHA-512 usa i primi 8 numeri primi. Dopo l'elaborazione di tutti i blocchi, SHA-384 tronca lo stato interno a 512 bit ai suoi primi 384 bit.

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

La troncatura e la diversa inizializzazione fanno sì che SHA-384 e SHA-512 producano sempre digest diversi per lo stesso input. Questo rende anche SHA-384 intrinsecamente resistente agli attacchi di estensione della lunghezza, a differenza di SHA-256 e SHA-512 dove un attaccante può aggiungere dati e calcolare un hash valido senza conoscere il messaggio originale.

Esempi di Codice SHA-384

SHA-384 è supportato nativamente in tutti i principali linguaggi e runtime. Di seguito trovi esempi funzionanti che puoi copiare direttamente nei tuoi progetti.

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

Domande Frequenti

Qual è la differenza tra SHA-384 e SHA-512?
SHA-384 e SHA-512 usano la stessa funzione di compressione, block size (1024 bit) e numero di round (80). Si differenziano in due modi: SHA-384 parte da valori hash iniziali diversi (derivati dai numeri primi 9–16 invece di 1–8), e restituisce solo i primi 384 bit dello stato interno a 512 bit. Questo significa che producono sempre digest diversi per lo stesso input.
SHA-384 è più sicuro di SHA-256?
SHA-384 offre 192 bit di resistenza alle collisioni rispetto ai 128 bit di SHA-256, basandosi sul limite dell'attacco del compleanno pari alla metà della lunghezza del digest. Per la resistenza alla preimmagine, SHA-384 offre 384 bit contro 256 bit. In pratica, entrambi sono considerati sicuri per i modelli di minaccia attuali, ma SHA-384 fornisce un margine di sicurezza maggiore per la protezione dei dati a lungo termine ed è richiesto da alcuni standard governativi.
Perché TLS usa SHA-384 invece di SHA-512?
Le cipher suite TLS come TLS_AES_256_GCM_SHA384 usano SHA-384 perché fornisce sufficiente resistenza alle collisioni (192 bit) mantenendo le dimensioni del digest gestibili. L'output esadecimale a 128 caratteri di SHA-512 aggiunge overhead nei messaggi di handshake e nelle catene di certificati senza un proporzionale beneficio in termini di sicurezza per il caso d'uso TLS. SHA-384 si allinea inoltre al livello di sicurezza a 192 bit di AES-256.
Come viene usato SHA-384 in Subresource Integrity (SRI)?
I tag SRI in HTML usano il formato integrity="sha384-{base64hash}" per verificare che gli script e i fogli di stile caricati da CDN non siano stati modificati. Il browser calcola l'hash SHA-384 del file scaricato e lo confronta con il valore atteso. Se non corrispondono, la risorsa viene bloccata. SHA-384 è l'algoritmo più comunemente usato per SRI perché bilancia sicurezza e dimensione del digest.
SHA-384 può essere invertito per recuperare l'input originale?
No. SHA-384 è una funzione a senso unico per progettazione. Ha 384 bit di resistenza alla preimmagine, il che significa che non esiste un metodo noto per recuperare l'input da un digest SHA-384 più velocemente della ricerca a forza bruta su 2^384 possibilità. Tuttavia, input brevi o prevedibili (come password comuni) possono essere trovati usando rainbow table precalcolate o attacchi a dizionario, motivo per cui le password devono essere hashate con algoritmi dedicati come bcrypt o Argon2.
SHA-384 è supportato nella Web Crypto API?
Sì. Tutti i browser moderni implementano SHA-384 tramite crypto.subtle.digest('SHA-384', data). Questa è la stessa API usata da questo strumento. È disponibile anche in Node.js 18+ e Deno. La Web Crypto API restituisce un ArrayBuffer che si converte in stringa esadecimale mappando ogni byte alla sua rappresentazione esadecimale a due caratteri.
Quando dovrei usare SHA-384 invece di SHA-256?
Usa SHA-384 quando la tua politica di sicurezza richiede più di 128 bit di resistenza alle collisioni, quando hai bisogno di conformità con CNSA/Suite B per dati classificati, o quando stai già usando AES-256 e vuoi un livello di sicurezza corrispondente a 192 bit. SHA-384 è anche più veloce di SHA-256 sui processori a 64 bit perché usa operazioni native su parole a 64 bit. Per la maggior parte delle applicazioni web e dell'hashing generico, SHA-256 rimane la scelta standard.