Skip to content

Strumento di Crittografia e Decifratura DES / 3DES

Cifratura/decifratura DES/3DES (2/3 chiavi) con ECB/CBC e PKCS#7 nel browser. Lunghezze chiavi (8/16/24 byte) validate rigorosamente, mai troncate in silenzio. Ogni risultato con il comando OpenSSL equivalente.

Niente tracciamento Funziona nel browser Gratuito
La cifratura avviene interamente nel tuo browser — la chiave e i dati che inserisci non lasciano mai questo dispositivo.

Testo cifrato
Comando OpenSSL equivalente
—

Il comando contiene la chiave che hai inserito.

Vettore di test DES da FIPS 81

Calcolato in fase di build dal motore che questa pagina esegue — confronta la tua implementazione DES con questo valore.
Chiave (DES singolo) 0123456789abcdef
Plaintext 4e6f772069732074
Ciphertext (ECB, senza padding) 3fa40e8a984d4815
Il motore DES/3DES asserisce il vettore FIPS 81 ed è stato confrontato con OpenSSL 3 (des-ede / des-ede3, con DES singolo verificato tramite l'equivalenza K‖K‖K) su oltre 3.000 combinazioni casuali tra ECB e CBC; i comandi OpenSSL equivalenti sono stati eseguiti in una shell reale per confronto. I default delle librerie sono stati confermati eseguendoli e leggendo il sorgente; vedi alternatives. — Go Tools Security Team · Sep 28, 2026

Scritto e revisionato dagli sviluppatori che costruiscono gli strumenti di crittografia. Ogni ciphertext e ogni numero di byte in questa pagina è calcolato dal motore dello strumento e verificato da test.

Risposte rapide su DES

Lunghezza della chiave DES

8 / 16 / 24 byte DES singolo: 8 byte (56 bit effettivi). 3DES: 16 byte (2-key) o 24 byte (3-key). Materiale di chiave nominale 112/168 bit; forza di sicurezza effettiva NIST circa 80/112 bit (SP 800-57). Questo strumento rileva automaticamente dal numero di byte; le altre lunghezze generano un errore.

Vettore di test FIPS 81

3fa40e8a984d4815 Chiave 0123456789abcdef, plaintext "Now is t" (hex 4e6f772069732074): DES singolo ECB senza padding produce 3fa40e8a984d4815.

Quanto è lungo l'IV di DES

8 byte 8 byte (16 cifre hex), solo CBC — ECB non lo usa. Distinto dall'IV a 16 byte di AES.

Cos'è il PKCS5Padding di Java

= PKCS#7 Per DES è PKCS#7 — lo stesso algoritmo di padding sotto il suo nome storico (il PKCS#5 definiva solo blocchi a 8 byte, che sono proprio quelli di DES).

DES è sicuro oggi

Solo interop legacy No. DES singolo ritirato nel 2005; 3DES deprecato in SP 800-131A Rev.2 (2023). Solo interop legacy — per tutto il resto AES-256.

Cosa sono DES e 3DES (Data Encryption Standard)?

DES (Data Encryption Standard) è il cifrario a blocchi simmetrico adottato dagli enti di standardizzazione statunitensi nel 1977, basato sul design Lucifer di IBM . Processa blocchi a 64 bit (8 byte) con una chiave nominale a 64 bit di cui 56 effettivi, attraverso 16 round di una struttura Feistel.

3DES (TDEA, Triple DES) concatena DES tre volte per compensare la chiave corta: C = E_K3(D_K2(E_K1(P))). Il passaggio centrale è una decifratura, così che K1=K2=K3 collassi la catena in DES singolo — una scelta deliberata di compatibilità. La forma 2-key (K3=K1) ha circa 112 bit effettivi ed è la forma più comune nei sistemi bancari legacy.

Il NIST ha ritirato DES singolo nel 2005 (nota FIPS 46-3) e ha deprecato 3DES in SP 800-131A Rev.2 (2023). L'unico motivo per cui esistono ancora è l'interop legacy: le clearing bancarie, i gateway di pagamento e i sistemi Java/.NET/PHP degli anni '90/2000 girano ancora su crittografia dell'era DES. I nuovi progetti dovrebbero usare AES-256.

# OpenSSL single DES (legacy provider)
openssl enc -des-ecb -provider legacy -provider default -K 0123456789abcdef -nopad

# 3-key 3DES CBC + PKCS#7 (default provider)
openssl enc -des-ede3-cbc -K <48 hex digits> -iv <16 hex digits> -base64 -A

Cosa fa questo strumento DES

Validazione rigorosa di tutte e tre le lunghezze di chiave

8/16/24 byte vengono rilevati automaticamente come DES singolo / 2-key / 3-key 3DES; qualsiasi altra cosa genera un errore. A differenza del troncamento silenzioso di CryptoJS o del tronca-e-avvisa di openssl enc -K, le chiavi sbagliate falliscono ad alta voce — la prima causa di disallineamenti di interop.

Vettore FIPS 81 calcolato in fase di build

La tabella del vettore di test in fondo alla pagina è derivata dallo stesso motore in fase di build, quindi i crawler leggono il valore di riferimento senza eseguire JS e il numero stampato non può mai divergere da quello interattivo.

Comando OpenSSL equivalente

Ogni combinazione di parametri corrisponde a un comando openssl enc che riproduce il risultato su OpenSSL 3, compresi i flag del legacy provider per DES singolo. Inviarlo all'altra parte fissa la divergenza dei parametri.

Supporto del testo in chiaro GBK

Il getBytes() di Java dell'era DES su un JDK Windows cinese produce GBK. Qui entrambe le direzioni accettano GBK, quindi il testo in cinese dei vecchi sistemi non richiede pre-conversione.

Tutto nel browser

TypeScript puro, zero dipendenze, zero richieste di rete. Chiavi e testo in chiaro non lasciano mai il dispositivo; funziona offline una volta caricato. L'unica forma accettabile per uno strumento che gestisce chiavi.

I default delle librerie DES per linguaggio

Java (JCE)

"DES" usa ECB + PKCS5Padding di default

Cipher.getInstance("DES") equivale a DES/ECB/PKCS5Padding; "DESede" è 3DES ma accetta solo chiavi a 24 byte — espandi K1‖K2 a K1‖K2‖K1 per la 2-key. PKCS5Padding è PKCS#7 per DES. Omettendo l'IV: la cifratura ne sceglie uno casuale (recuperabile via getIV()), la decifratura lancia "Parameters missing".

PHP (openssl_encrypt)

des-ede3-cbc / des-ede-cbc

I nomi degli algoritmi seguono OpenSSL: des-ede3 è ECB triplo, des-ede3-cbc è CBC. $options=0 (default) produce testo Base64; OPENSSL_RAW_DATA per i byte grezzi. Le chiavi corte sono riempite di zeri in silenzio; un IV vuoto avvisa e poi cifra con un IV a zero.

OpenSSL 3 (openssl enc)

-des-ede3-cbc funziona di default

DES singolo richiede -provider legacy -provider default (alcune build omettono legacy del tutto). -K/-iv prendono hex; PKCS#7 di default, -nopad per disattivarlo. -K tronca le chiavi troppo lunghe con un avviso.

CryptoJS

Tronca silenziosamente le lunghezze di chiave illegali

Una chiave grezza a 8 byte (WordArray) funziona; le lunghezze sbagliate sono riempite di zeri o troncate in silenzio (4 byte riempiti, 10 troncati — nessun errore). Una stringa come "chiave" esegue la derivazione della chiave (MD5 + salt casuale, output con prefisso Salted__, diverso ogni volta). CBC senza IV è un crash TypeError, non un IV a zero. TripleDES con chiave a 8 byte diventa silenziosamente DES singolo.

.NET

TripleDES usa CBC + PKCS7 di default

TripleDESCryptoServiceProvider: Mode=CBC, Padding=PKCS7, Key di 16 o 24 byte (DES ne prende 8). .NET rifiuta le chiavi deboli (la parità viene normalizzata prima, poi confrontata con la tabella delle chiavi deboli — una chiave nulla lancia un'eccezione) mentre ogni altra libreria le accetta. Occhio quando migrisci.

Go (crypto/des)

Cablaggio esplicito della modalità

des.NewCipher fornisce l'interfaccia a blocchi grezza con chiave a 8 byte; la avvolgi tu in cipher.NewCBCEncrypter e simili. Il 3DES è des.NewTripleDESCipher (24 byte). La lunghezza dell'IV è verificata più rigorosamente che nella maggior parte dei linguaggi.

Esempi di cifratura DES

Vettore di test FIPS 81 (DES singolo, ECB, senza padding)

Chiave 0123456789abcdef, testo in chiaro (hex) 4e6f772069732074
3fa40e8a984d4815

Il testo in chiaro è la stringa ASCII "Now is t". È il classico vettore FIPS 81, e la tabella in fondo alla pagina è calcolata in fase di build dallo stesso motore — se la tua implementazione DES non produce questo valore con questi input, ha un bug.

3DES 2-key + CBC + PKCS#7: da testo in chiaro UTF-8 a Base64

Chiave 0123456789abcdeffedcba9876543210 (16 byte), IV fedcba9876543210, testo in chiaro: DES interop test: order 20260927-0042
QmnMoewSecp7Z7cr/w3/4AjM9lpFo1swc4dfLNH5UkgCwU5n7WIdKA==

Una chiave a 16 byte è trattata come 3DES 2-key (K1 = primi 8 byte, K2 = ultimi 8, K3 = K1 — l'assemblaggio EDE2). PKCS#7 su un blocco a 8 byte è esattamente ciò che Java chiama "PKCS5Padding" per DES: stesso schema, cambia solo la dimensione del blocco.

3DES 3-key + CBC + PKCS#7

Chiave 0123456789abcdef23456789abcdef010456789abcdef012 (24 byte), IV fedcba9876543210, testo in chiaro: hello des
DhDQX9sfxKOirZ8eyqT7Jg==

Una chiave a 24 byte è il tre-chiavi completo EDE3: C = E_K3(D_K2(E_K1(P))). Delle tre lunghezze di chiave è l'unica forma senza equivalente degenerato — sia la 2-key che K1=K2=K3 collassano in cifrari più deboli.

Come usare questo strumento di cifratura/decifratura DES

  1. 1

    Scegli modalità e padding

    Per il DES/ECB/PKCS5Padding di Java scegli ECB + PKCS#7; per openssl enc -des-ede3-cbc scegli CBC + PKCS#7. Il vecchio codice PHP mcrypt usa tipicamente Zero padding.

  2. 2

    Inserisci la chiave (8/16/24 byte)

    Il numero di byte seleziona il cifrario: 8 = DES singolo, 16 = 3DES 2-key, 24 = 3DES 3-key. Scegli Hex, Text o Base64; il badge mostra il numero reale di byte e la forma rilevata. Lunghezze sbagliate generano un errore — niente viene mai troncato.

  3. 3

    Per CBC, inserisci l'IV a 8 byte

    ECB non richiede IV. L'IV deve essere esattamente 8 byte — 16 cifre esadecimali, non le 32 di AES. Il pulsante Random ne genera uno fresco.

  4. 4

    Incolla e ottieni risultati in tempo reale

    Cifratura: inserisci testo (UTF-8/GBK) o hex. Decifratura: incolla ciphertext Base64 o hex. I risultati si aggiornano mentre scrivi, con copia con un clic e verifica di round-trip tramite il pulsante Decrypt-this.

  5. 5

    Porta il comando OpenSSL equivalente all'altra parte

    Il pannello richiudibile fornisce un comando openssl enc che riproduce il risultato corrente (chiave inclusa; i comandi DES singolo portano -provider legacy -provider default). Inviarlo a chi stai interoperando è il modo più rapido per stabilire di chi è il parametro sbagliato.

Perché la decifratura DES fallisce

La lunghezza della chiave non è 8/16/24

Una "chiave DES" di 32 caratteri hex è 16 byte — è 3DES 2-key, non DES singolo. Al contrario, fornire una chiave a 24 byte a un sistema solo-2-key fallisce anch'esso.

✗ Errato
Chiave 0123456789abcdeffedcba9876543210 (16 byte) con DES singolo selezionato → errore "la chiave deve essere esattamente 8 byte"
✓ Corretto
La stessa chiave come 16 byte (3DES 2-key) → decifra pulitamente

Confusione PKCS5 vs PKCS7

Java scrive "PKCS5Padding" per DES ma esegue l'algoritmo PKCS#7 (il PKCS#5 ha definito solo il padding per blocchi a 8 byte, che coincide col blocco di DES, quindi il nome è rimasto). Selezionare None o Zero su un ciphertext JCE fallisce sempre.

✗ Errato
Ciphertext JCE `DES/ECB/PKCS5Padding` decifrato come "nessun padding" → spazzatura in coda o errore di bad-padding
✓ Corretto
Selezionare PKCS#7 (Java PKCS5Padding) → output pulito

Copiare la lunghezza dell'IV di AES (16 byte)

Il blocco di DES è 8 byte, quindi anche il suo IV è 8 byte. Incollare un IV a 32 cifre hex da codice AES fallisce il controllo di lunghezza; un IV a 8 cifre viene riempito con zeri e letto male.

✗ Errato
IV 00000000000000000000000000000000 (32 cifre hex) → errore "l'IV deve essere 8 byte"
✓ Corretto
IV 0000000000000000 (16 cifre hex) → accettato

IV CBC sbagliato: solo il primo blocco a 8 byte è spazzatura

Decifrare ciphertext multi-blocco con un IV sbagliato non genera errori — solo il primo blocco a 8 byte è spazzatura, il resto si decifra bene (l'IV raggiunge solo il primo blocco, e il controllo del padding vive nell'ultimo blocco). Quando vedi "i primi caratteri sono illeggibili, il resto va bene", controlla l'IV prima della chiave; il ciphertext a blocco singolo invece rompe il padding e lancia bad decrypt.

✗ Errato
Ciphertext multi-blocco + IV sbagliato → primi 8 byte illeggibili, resto normale — scambiato per "chiave sbagliata"
✓ Corretto
Cambiare solo l'IV (chiave intoccata) → il primo blocco si recupera, confermando che l'IV era il problema

openssl enc -K tronca silenziosamente le chiavi lunghe

-K tiene solo i byte che gli servono e stampa un avviso di una riga che gli script inghiottono. Quando l'altra parte dice "la chiave è queste 48 cifre hex" ma in realtà ha cifrato con le prime 16, decifrare con la chiave completa fallisce.

✗ Errato
Shell: `-K <49 cifre hex>` → "hex string is too long, ignoring excess" perso nella pipeline
✓ Corretto
Usa il comando equivalente di questo strumento per generare un `-K` della lunghezza corretta, poi confronta i byte della chiave con l'altra parte

DES singolo fallisce su OpenSSL 3 con "unsupported"

Il provider predefinito di OpenSSL 3 non ha des-ecb/des-cbc; eseguirlo nudo lancia digital envelope routines::unsupported. Aggiungi -provider legacy -provider default, o usa des-ede3 con K‖K‖K (algebricamente DES singolo).

✗ Errato
openssl enc -des-ecb -K … → Error: unsupported
✓ Corretto
openssl enc -des-ecb -provider legacy -provider default -K … (o des-ede3-ecb -K <K‖K‖K>)

Quando serve la crittografia DES online

Debug della crittografia dei messaggi dei sistemi legacy
Le clearing bancarie, il calcolo dei MAC dei gateway POS e la cifratura delle vecchie interfacce ERP girano ancora su DES/3DES. Incolla qui il messaggio e la chiave per verificare "la chiave è giusta, quale modalità, quale padding" senza allestire un ambiente Java o PHP.
Migrazione di codice legacy Java / PHP / .NET
Confronta l'output di Cipher.getInstance("DES/ECB/PKCS5Padding") o di openssl_encrypt(..., 'des-ede3-cbc', ...) con questo strumento byte per byte prima di sostituire. Le forme 2-key/3-key sono rilevate dalla lunghezza della chiave, quindi non c'è nulla da indovinare.
Audit di sicurezza e didattica
Dimostra la fuga di pattern di ECB (blocchi di plaintext uguali → blocchi di ciphertext uguali), verifica la degenerazione del 3DES (K1=K2=K3 collassa in DES singolo) e controlla il vettore FIPS 81 — pane per i report di pentest e i corsi di crittografia.
Generare ciphertext di esempio per la documentazione
Quando un wiki interno o una doc API ha bisogno di un esempio riproducibile, calcolalo qui con chiave e IV fissi — i lettori possono verificarlo con il comando OpenSSL equivalente, e nessun dato di produzione viene incollato in giro.

DES / 3DES e modalità di cifratura a blocchi spiegate

Blocco e chiave
DES processa blocchi a 64 bit attraverso 16 round Feistel, ciascuno con una sottochiave a 48 bit derivata dalla chiave master a 56 bit dalle permutazioni di compressione PC-1/PC-2 e rotazioni pianificate. Gli otto S-box sono l'unica fonte di non linearità; i loro criteri di design non sono mai stati pubblicati integralmente.
L'assemblaggio EDE del 3DES
C = E_K3(D_K2(E_K1(P))). La decifratura centrale fa sì che K1=K2=K3 collassi in DES singolo — un obiettivo di retrocompatibilità. La forma 2-key ha 2×56=112 bit di materiale di chiave nominale, ma una forza di sicurezza effettiva di circa 80 bit secondo NIST (SP 800-57 Part 1); la 3-key è nominale a 168 bit con una forza di 112 (deprecata).
ECB e CBC
ECB cifra i blocchi indipendentemente — blocchi di plaintext uguali producono blocchi di ciphertext uguali, una fuga di pattern visibile che i blocchi a 8 byte rendono peggiore di AES-ECB. CBC mescola nel plaintext il blocco di ciphertext precedente (l'IV per il primo) prima di cifrare, ed è stata la scelta mainstream per le banche dell'era DES. Entrambe le modalità producono ciphertext multiplo di 8 byte.
Padding: PKCS#7 / Zero / None
PKCS#7 aggiunge n byte di valore n per quanto manca (3 mancanti → 03 03 03) e, con il blocco già pieno, aggiunge un intero blocco extra — questo è il "PKCS5Padding" di Java per DES. Zero padding riempie con 0x00 ed è con perdita quando il plaintext termina davvero con 0x00. None richiede un multiplo esatto di 8.
Il legacy provider di OpenSSL 3
OpenSSL 3 ha spostato DES singolo in un legacy provider disattivato per impostazione predefinita: la CLI ha bisogno di -provider legacy -provider default, e alcune build (incluso OpenSSL incluso in Node) lo omettono del tutto. Il 3DES (des-ede/des-ede3) resta nel provider predefinito. Il motore puro TS di questo strumento non è toccato.

Usare DES correttamente (interop legacy)

Mai usare DES per sistemi nuovi, in nessuna forma
I 56 bit di DES singolo si forzano con brute force; il blocco a 64 bit porta il limite di birthday Sweet32 (CVE-2016-2183), e il NIST limita un key bundle a ≈8 MB (2²⁰ blocchi) di plaintext; 2-key è Disallowed, cifratura 3-key dopo il 2023. Per tutto ciò che è nuovo usa AES-256. Questo strumento esiste per leggere e migrare in sicurezza i sistemi legacy.
Nell'interop legacy, prima byte-identico
Quando tocchi un vecchio sistema, riproduci qui byte per byte il ciphertext dei vecchi parametri, poi cambia codice. Conferma lunghezza della chiave, modalità, padding e origine dell'IV (fisso vs casuale, header vs fuori banda) prima di cambiare algoritmo.
Non riutilizzare gli IV, nemmeno nei sistemi legacy
Riutilizzare un IV CBC con la stessa chiave espone la relazione tra i primi blocchi di due plaintext. Se un protocollo legacy impone un IV fisso, registralo come difetto nella lista di migrazione — non ereditarlo come convenzione.
Tieni le chiavi fuori dal codice sorgente
I sistemi dell'era DES mettono abitualmente le chiavi in chiaro nel sorgente o nella config. Quando ne fai l'audit, metti "come è conservata la chiave" accanto a "quale algoritmo" nel report — nella maggior parte delle violazioni il primo era il vero buco.

FAQ su cifratura e decifratura DES

La decifratura DES fallisce con "bad decrypt" o un errore di padding — cosa verifico?
La decifratura richiede che ogni parametro corrisponda a chi ha cifrato: i byte della chiave, la lunghezza (8/16/24), la modalità (ECB/CBC), l'IV, il padding e se il ciphertext è hex o Base64. Le due trappole più comuni: lunghezza della chiave sbagliata (una "chiave DES" di 32 caratteri hex è 16 byte — è 3DES 2-key, non DES singolo) e confusione sui nomi del padding (il PKCS5Padding di Java È PKCS#7 per DES — non scegliere None). Il pannello richiudibile a destra mostra un comando OpenSSL equivalente per le impostazioni correnti; inviarlo all'altra parte è il modo più rapido per trovare la divergenza.
Quanto è lunga una chiave DES? E il 3DES?
DES singolo: 64 bit nominali (8 byte, 56 effettivi — un bit per byte è di parità). Il 3DES esiste in due forme: 2-key (16 byte, K1‖K2 con K3=K1) e 3-key (24 byte, K1‖K2‖K3). Il materiale di chiave nominale è di 112/168 bit, ma la forza di sicurezza effettiva secondo NIST (SP 800-57 Part 1 Rev.5, tabella 2) è di circa 80 e 112 bit — e la forma 3-key è anch'essa deprecata. Questo strumento riconosce la forma dal numero di byte; qualsiasi cosa diversa da 8/16/24 genera un errore — CryptoJS e openssl enc -K invece troncano o riempiono con zeri in silenzio, ed è la causa numero uno dei fallimenti di interop.
Cos'è l'IV e quanto è lungo per DES?
L'IV è il valore a 8 byte che CBC mescola nel primo blocco; ECB non lo usa. Deve essere esattamente 8 byte (16 cifre esadecimali o 8 caratteri ASCII). Nota che l'IV di DES è 8 byte mentre quello di AES è 16 — copiare una lunghezza di IV da AES fallisce immediatamente. Non riutilizzare mai un IV con la stessa chiave.
A cosa corrisponde il DES/ECB/PKCS5Padding di Java in questo strumento?
Modalità ECB + padding PKCS#7. Nel JCE, il "PKCS5Padding" per DES esegue l'algoritmo generico PKCS#7 — il PKCS#5 ha definito padding solo per blocchi a 8 byte, che sono proprio quelli di DES. L'output di Cipher.getInstance("DES/ECB/PKCS5Padding") di Java si decifra qui con ECB + PKCS#7 e una chiave DES singolo a 8 byte. ⚠️ Il 3DES di Java (DESede) accetta solo chiavi a 24 byte — per la forma 2-key devi espandere K1‖K2 a K1‖K2‖K1 tu stesso.
Come si mappano i nomi degli algoritmi des-ede3 di PHP?
PHP prende in prestito i nomi di OpenSSL: des-ede3-cbc è 3DES 3-key + CBC, des-ede3-ecb è 3-key + ECB; des-ede-cbc è la forma 2-key. Una chiave a 24 byte seleziona 3-key, 16 byte seleziona 2-key.
Cosa sono i bit di parità in una chiave DES? Vengono verificati?
Il bit basso di ogni byte della chiave è definito come bit di parità, quindi la vera chiave a 56 bit risiede dentro 64 bit. FIPS 46-3 non richiede di verificarli — OpenSSL, Java e questo strumento li ignorano; funzionano qualsiasi 8 byte, e cambiare i bit di parità non cambia il ciphertext. .NET è l'eccezione: normalizza prima la parità e poi controlla una tabella di chiavi deboli, quindi le chiavi nulle e le altre chiavi deboli vengono rifiutate da .NET mentre ogni altra libreria cifra felicemente — una trappola che si attiva solo migrando chiavi di test da Java/OpenSSL a .NET.
Cosa succede nel 3DES quando K1 = K2?
Nel 3DES 2-key, K3 è sempre uguale a K1; se anche K1 = K2, l'intera catena EDE collassa in DES singolo: E_K(D_K(E_K(P))) = E_K(P). Succede lo stesso quando tutti e tre i componenti a 8 byte di una chiave a 24 byte sono identici. Questo strumento cifra comunque (l'interop viene prima), ma la forza reale è allora quella di DES singolo, 56 bit, non 3DES.
DES è ancora sicuro?
No — è solo per interop con sistemi legacy. Il NIST ha ritirato DES singolo il 2005-05-19 (le chiavi a 56 bit si forzano con brute force; il Deep Crack di EFF ci è riuscito in 56 ore nel 1998, 22 ore l'anno dopo con distributed.net). SP 800-131A Rev.2 elenca la cifratura TDEA 2-key come Disallowed e quella a 3-key come Disallowed dopo il 2023-12-31 (la decifratura resta "Legacy use", mantenuta solo per leggere dati storici); SP 800-67 in sé è stato ritirato il 2024-01-01. Il piccolo blocco a 64 bit porta anche il limite di birthday di classe Sweet32 (CVE-2016-2183) — il NIST limita un singolo key bundle a 2²⁰ blocchi (≈8 MB) di testo in chiaro. Per tutto ciò che è nuovo usa AES-256. Questo strumento esiste perché le clearing bancarie, i gateway di pagamento e i vecchi sistemi Java/.NET girano ancora su messaggi dell'era DES — sistemarli comincia dal saperli leggere.
Perché il mio risultato 3DES differisce da Java/PHP?
Controlla in ordine di probabilità: ① lunghezza della chiave — la "chiave DES di 32 cifre hex" dell'altra parte è 16 byte (3DES 2-key), tu hai decifrato come DES singolo; ② modalità — il "DES" nudo di Java usa ECB di default, i nomi di OpenSSL senza suffisso di modalità, des-ede3/des-ede, sono ECB (l'alias di CBC è -des3); openssl_encrypt di PHP richiede il nome dell'algoritmo esplicito — a confondere è che di default produce testo Base64, non byte grezzi; ③ padding — il vecchio mcrypt di PHP spesso usava Zero padding, il JCE usa PKCS#5/#7; ④ codifica — hex vs Base64, e maiuscole/minuscole; ⑤ la trappola della password di CryptoJS — passare una stringa come "chiave" fa eseguire la derivazione della chiave (MD5 + salt casuale, output con prefisso Salted__, diverso ogni volta), che non è affatto la chiave grezza — la causa principale del "stesso codice, risultato diverso a ogni esecuzione". Questo strumento ti lascia cambiare uno a uno ciascun parametro; il comando OpenSSL equivalente a destra può essere inviato all'altra parte per riprodurre.
ECB o CBC — quale uso?
Quella che richiede il sistema con cui stai parlando — l'interop legacy non ha diritto di voto. Se davvero puoi scegliere, sempre CBC con IV casuale: ECB cifra blocchi di plaintext uguali in blocchi di ciphertext uguali, e i piccoli blocchi a 8 byte di DES fanno trapelare i pattern ancora più visibilmente di AES-ECB. I protocolli bancari dell'era DES usano entrambi; controlla prima il documento del protocollo.
Funziona offline? I miei dati vengono caricati?
Tutto il calcolo avviene nel tuo browser (TypeScript puro, zero dipendenze, zero richieste di rete); chiavi e testo in chiaro non lasciano mai il dispositivo. Una volta caricata la pagina puoi andare offline e continuare a lavorare. È l'unica forma accettabile per uno strumento che gestisce chiavi.
2-key o 3-key 3DES — quale è più comune nei sistemi legacy?
La 2-key (16 byte) è più comune: banche e industria dei pagamenti hanno distribuito hardware a chiave di 16 byte per compatibilità, e SP 800-67 ha tenuto per essa una data di deprecazione separata (più antica). Quindi una "chiave 3DES" di 32 caratteri hex è molto probabilmente la forma 2-key. Questo strumento rileva la forma dal numero di byte automaticamente.

Strumenti correlati

Vedi tutti gli strumenti →

Strumento di Decifratura AES — OpenSSL e CryptoJS

Strumenti di sicurezza

Decifra AES online — GCM/CBC/CTR, passphrase o chiave grezza, rileva "U2FsdGVkX1" (OpenSSL/CryptoJS). 100% nel browser, le chiavi restano sul dispositivo.

Strumento di Crittografia AES — GCM, CBC e CTR

Strumenti di sicurezza

Crittografia AES online gratuita — AES-128/192/256, GCM/CBC/CTR, passphrase (PBKDF2) o chiave grezza. Funziona al 100% nel browser; nulla viene caricato.

Generatore e verificatore di hash Bcrypt

Strumenti di sicurezza

Genera e verifica hash bcrypt delle password online: costo regolabile, prefissi $2b$/$2a$/$2y$. 100% nel tuo browser; la password non viene mai caricata.

Calcolatore di Checksum CRC

Strumenti di sicurezza

Incolla esadecimale o testo e ottieni tutte le 63 varianti CRC-8, CRC-16 e CRC-32 in una volta. Hai un checksum che non torna? Inseriscilo e lo strumento nomina la variante: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Tutto in locale.

Generatore HMAC e Verificatore di Firma

Strumenti di sicurezza

Generatore e verificatore HMAC online e gratuito. Calcola HMAC-SHA256/SHA1/SHA384/SHA512 con chiavi in Testo, Hex o Base64 e output Hex/Base64/Base64URL. 100% nel tuo browser — le chiavi non lasciano mai la pagina.

Decodificatore JWT

Strumenti di sicurezza

Decodifica token JWT online con il nostro decodificatore JWT gratis. Ispeziona intestazione, payload, firma, scadenza e attestazioni. 100% browser — token mai fuori dal dispositivo. Nessuna registrazione, nessun tracciamento.