Skip to content

Herramienta de cifrado y descifrado DES / 3DES

Cifrado y descifrado DES/3DES (2/3 claves) con ECB/CBC y PKCS#7 en tu navegador. Claves (8/16/24 bytes) validadas estrictamente, sin recortes silenciosos. Cada resultado con el comando OpenSSL equivalente. Nada se sube.

Sin rastreo Se ejecuta en el navegador Gratis
El cifrado se ejecuta por completo en su navegador — la clave y los datos que introduzca nunca salen de este dispositivo.

Texto cifrado
Comando OpenSSL equivalente
—

El comando contiene la clave que ha introducido.

Vector de prueba DES de FIPS 81

Calculado en tiempo de compilación por el motor que ejecuta esta página — coteje aquí su propia implementación DES.
Clave (DES simple) 0123456789abcdef
Texto claro 4e6f772069732074
Texto cifrado (ECB, sin relleno) 3fa40e8a984d4815
El motor DES/3DES verifica el vector FIPS 81 y se cotejó con OpenSSL 3 (des-ede / des-ede3, con el DES simple validado mediante la equivalencia K‖K‖K) en más de 3.000 combinaciones aleatorias entre ECB y CBC; los comandos OpenSSL equivalentes se ejecutaron en un shell real para comparar. Los valores por defecto de las bibliotecas se confirmaron ejecutándolas y leyendo su código fuente; véase alternatives. — Go Tools Security Team · Sep 28, 2026

Escrito y revisado por los desarrolladores que construyen las herramientas de criptografía. Cada texto cifrado y cada número de bytes de esta página se calcula con el motor de la herramienta y se verifica con tests.

Respuestas rápidas sobre DES

Longitud de la clave DES

8 / 16 / 24 bytes DES simple: 8 bytes (56 bits efectivos). 3DES: 16 bytes (2 claves) o 24 bytes (3 claves). Material de clave nominal 112/168 bits; fuerza de seguridad efectiva de NIST unos 80/112 bits (SP 800-57). Esta herramienta lo detecta automáticamente por el número de bytes; las demás longitudes lanzan error.

Vector de prueba FIPS 81

3fa40e8a984d4815 Clave 0123456789abcdef, texto claro "Now is t" (hex 4e6f772069732074): DES simple ECB sin relleno devuelve 3fa40e8a984d4815.

¿Cuánto mide el IV de DES

8 bytes 8 bytes (16 dígitos hex), solo en CBC — ECB no usa ninguno. Distinto del IV de AES, de 16 bytes.

Qué es el PKCS5Padding de Java

= PKCS#7 Para DES es PKCS#7 — el mismo algoritmo de relleno bajo su nombre histórico (PKCS#5 solo definió bloques de 8 bytes, que son los de DES).

¿Es seguro DES hoy

Solo interoperabilidad heredada No. DES simple retirado en 2005; 3DES obsoleto en la SP 800-131A Rev.2 (2023). Solo interoperabilidad heredada — use AES-256 para cualquier cosa nueva.

¿Qué son DES y 3DES (Data Encryption Standard)?

DES (Data Encryption Standard) es el cifrado en bloques simétrico que el organismo de estándares de EE. UU. adoptó en 1977, a partir del diseño Lucifer de IBM . Procesa bloques de 64 bits (8 bytes) bajo una clave nominal de 64 bits con 56 bits efectivos, en 16 rondas de una estructura de Feistel.

3DES (TDEA, Triple DES) encadena DES tres veces para compensar la clave corta: C = E_K3(D_K2(E_K1(P))). La pasada central es un descifrado, de modo que K1=K2=K3 colapsa la cadena en DES simple — una elección deliberada de compatibilidad. La forma de 2 claves (K3=K1) tiene unos 112 bits efectivos y es la forma más común en los sistemas bancarios heredados.

NIST retiró el DES simple en 2005 (aviso del FIPS 46-3) y marcó 3DES como obsoleto en la SP 800-131A Rev.2 (2023). La única razón de que sigan existiendo es la interoperabilidad heredada: cámaras de compensación bancarias, pasarelas de pago y sistemas Java/.NET/PHP de los 90 y 2000 siguen ejecutando criptografía de la era DES. Los diseños nuevos deben usar 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

Qué hace esta herramienta DES

Validación estricta de las tres longitudes de clave

8/16/24 bytes se autodetectan como DES simple / 2 claves / 3 claves 3DES; cualquier otra cosa lanza un error. A diferencia del truncado silencioso de CryptoJS o del truncate-and-warn de openssl enc -K, una clave errónea falla de forma ruidosa — la primera causa de desajustes de interoperabilidad.

Vector FIPS 81 calculado en tiempo de compilación

La tabla de vectores de prueba al pie se calcula en la compilación con el mismo motor, de modo que los rastreadores leen el valor de referencia sin ejecutar JS y el número impreso nunca puede desviarse del interactivo.

Comando OpenSSL equivalente

Cada combinación de parámetros corresponde a un comando openssl enc que reproduce el resultado en OpenSSL 3, incluidos los flags del legacy provider para DES simple. Envíelo a la otra parte para acotar la divergencia de parámetros.

Soporte de texto claro GBK

El getBytes() de Java de la era DES sobre un JDK Windows en chino produce GBK. Aquí ambas direcciones aceptan GBK, así que el texto chino de los sistemas antiguos no necesita conversión previa.

Enteramente en el navegador

TypeScript puro, cero dependencias, cero peticiones de red. Las claves y el texto claro nunca salen del dispositivo; funciona sin conexión tras la carga. La única forma aceptable para una herramienta que maneja claves.

Valores predeterminados de las bibliotecas DES por lenguaje

Java (JCE)

"DES" usa ECB + PKCS5Padding por defecto

Cipher.getInstance("DES") equivale a DES/ECB/PKCS5Padding; "DESede" es 3DES pero solo acepta claves de 24 bytes — expanda K1‖K2 a K1‖K2‖K1 para 2 claves. PKCS5Padding es PKCS#7 para DES. Sin IV: el cifrado elige una aleatoria (recuperable con getIV()), el descifrado lanza "Parameters missing".

PHP (openssl_encrypt)

des-ede3-cbc / des-ede-cbc

Los nombres de algoritmo siguen a OpenSSL: des-ede3 es ECB triple, des-ede3-cbc es CBC. $options=0 (por defecto) devuelve texto Base64; OPENSSL_RAW_DATA para bytes crudos. Las claves cortas se rellenan con ceros en silencio; un IV vacío avisa y luego cifra con un IV cero.

OpenSSL 3 (openssl enc)

-des-ede3-cbc funciona por defecto

El DES simple necesita -provider legacy -provider default (algunas compilaciones omiten legacy por completo). -K/-iv toman hex; PKCS#7 por defecto, -nopad para desactivarlo. -K trunca las claves demasiado largas con un aviso.

CryptoJS

Trunca silenciosamente las longitudes de clave ilegales

Una clave cruda de 8 bytes (WordArray) funciona; las longitudes erróneas se rellenan con ceros o truncan en silencio (4 bytes se rellenan, 10 se truncan — sin error). Una cadena como "clave" dispara una derivación de clave (MD5 + sal aleatoria, salida con prefijo Salted__, distinta cada vez). CBC sin IV es un TypeError, no un IV cero. TripleDES con clave de 8 bytes se convierte silenciosamente en DES simple.

.NET

TripleDES usa CBC + PKCS7 por defecto

TripleDESCryptoServiceProvider: Mode=CBC, Padding=PKCS7, clave de 16 o 24 bytes (DES toma 8). .NET rechaza las claves débiles (primero normaliza la paridad y luego consulta la tabla de claves débiles — una clave cero lanza una excepción) mientras todas las demás bibliotecas las aceptan. Téngalo presente al migrar.

Go (crypto/des)

Conexión explícita del modo

des.NewCipher da la interfaz de bloque crudo con clave de 8 bytes; usted mismo la envuelve en cipher.NewCBCEncrypter etc. 3DES es des.NewTripleDESCipher (24 bytes). La longitud del IV se comprueba con más rigor que en la mayoría de lenguajes.

Ejemplos de cifrado DES

Vector de prueba FIPS 81 (DES simple, ECB, sin relleno)

Clave 0123456789abcdef, texto claro (hex) 4e6f772069732074
3fa40e8a984d4815

El texto claro es la cadena ASCII "Now is t". Es el vector FIPS 81 de manual, y la tabla al pie de la página se calcula en tiempo de compilación con el mismo motor — si su implementación DES no produce este valor para estas entradas, tiene un error.

3DES de 2 claves + CBC + PKCS#7: texto claro UTF-8 a Base64

Clave 0123456789abcdeffedcba9876543210 (16 bytes), IV fedcba9876543210, texto claro: DES interop test: order 20260927-0042
QmnMoewSecp7Z7cr/w3/4AjM9lpFo1swc4dfLNH5UkgCwU5n7WIdKA==

Una clave de 16 bytes se trata como 3DES de 2 claves (K1 = los primeros 8 bytes, K2 = los últimos 8, K3 = K1 — el ensamblado EDE2). PKCS#7 sobre un bloque de 8 bytes es exactamente lo que Java llama "PKCS5Padding" para DES: el mismo esquema; solo cambia el tamaño de bloque.

3DES de 3 claves + CBC + PKCS#7

Clave 0123456789abcdef23456789abcdef010456789abcdef012 (24 bytes), IV fedcba9876543210, texto claro: hello des
DhDQX9sfxKOirZ8eyqT7Jg==

Una clave de 24 bytes es el EDE3 completo de tres claves: C = E_K3(D_K2(E_K1(P))). De las tres longitudes de clave, es la única forma sin equivalente degenerado — tanto 2 claves como K1=K2=K3 colapsan en cifrados más débiles.

Cómo usar esta herramienta de cifrado/descifrado DES

  1. 1

    Elija modo y relleno

    Para el DES/ECB/PKCS5Padding de Java seleccione ECB + PKCS#7; para openssl enc -des-ede3-cbc, CBC + PKCS#7. El código PHP mcrypt antiguo suele usar Zero padding.

  2. 2

    Introduzca la clave (8/16/24 bytes)

    El número de bytes selecciona el cifrado: 8 = DES simple, 16 = 3DES de 2 claves, 24 = 3DES de 3 claves. Elija Hex, Texto o Base64; la insignia muestra el número real de bytes y la forma detectada. Las longitudes erróneas lanzan error — nunca se trunca nada.

  3. 3

    Para CBC, introduzca el IV de 8 bytes

    ECB no necesita IV. El IV debe medir exactamente 8 bytes — 16 dígitos hex, no los 32 de AES. El botón Aleatorio genera uno nuevo.

  4. 4

    Pegue y obtenga resultados en vivo

    Para cifrar: introduzca texto (UTF-8/GBK) o hex. Para descifrar: pegue texto cifrado en Base64 o hex. Los resultados se actualizan mientras escribe, con copia con un clic y comprobación de ida y vuelta mediante el botón Descifrar esto.

  5. 5

    Lleve el comando OpenSSL equivalente a la otra parte

    El panel plegable da un comando openssl enc que reproduce el resultado actual (clave incluida; los comandos de DES simple llevan -provider legacy -provider default). Envíelo a su interlocutor — la forma más rápida de zanjar de quién es el parámetro incorrecto.

Por qué falla el descifrado DES

La longitud de clave no es 8/16/24

Una "clave DES" de 32 caracteres hex son 16 bytes — eso es 3DES de 2 claves, no DES simple. A la inversa, entregar una clave de 24 bytes a un sistema que solo admite 2 claves también falla.

✗ Incorrecto
Clave 0123456789abcdeffedcba9876543210 (16 bytes) con DES simple seleccionado → error "la clave debe medir exactamente 8 bytes"
✓ Correcto
La misma clave como 16 bytes (3DES de 2 claves) → descifra limpiamente

Confusión entre los nombres PKCS5 y PKCS7

Java escribe "PKCS5Padding" para DES pero ejecuta el algoritmo PKCS#7 (PKCS#5 solo definió relleno para bloques de 8 bytes, que son los de DES, por eso se quedó el nombre). Elegir None o Zero contra un texto cifrado del JCE siempre falla.

✗ Incorrecto
Texto cifrado JCE `DES/ECB/PKCS5Padding` descifrado como "sin relleno" → basura al final o error de relleno no válido
✓ Correcto
Seleccionar PKCS#7 (Java PKCS5Padding) → salida limpia

Copiar la longitud de IV de AES (16 bytes)

El bloque de DES es de 8 bytes, así que su IV también. Pegar un IV de 32 dígitos hex procedente de código AES falla la comprobación de longitud; un IV de 8 dígitos hex se rellena con ceros y se malinterpreta.

✗ Incorrecto
IV 00000000000000000000000000000000 (32 dígitos hex) → error "el IV debe medir 8 bytes"
✓ Correcto
IV 0000000000000000 (16 dígitos hex) → aceptado

IV de CBC incorrecto: solo el primer bloque de 8 bytes queda corrupto

Descifrar un texto de varios bloques con un IV erróneo no da error — solo el primer bloque de 8 bytes queda corrupto, el resto descifra bien (el IV solo alcanza al bloque uno, y la comprobación del relleno vive en el último bloque). Cuando vea "los primeros caracteres salen corruptos, el resto bien", revise el IV antes que la clave; con un texto de un solo bloque, en cambio, el relleno se rompe y salta el error bad decrypt.

✗ Incorrecto
Texto de varios bloques + IV erróneo → primeros 8 bytes corruptos, resto normal — se malinterpreta como "clave incorrecta"
✓ Correcto
Cambiar solo el IV (clave intacta) → el primer bloque se recupera, confirmando que el IV era el problema

openssl enc -K trunca silenciosamente las claves largas

-K conserva solo los bytes que necesita e imprime un aviso de una línea que los scripts se tragan. Cuando el otro lado dice "la clave son estos 48 dígitos hex" pero en realidad cifró con los primeros 16, descifrar con la clave completa falla.

✗ Incorrecto
Shell: `-K <49 dígitos hex>` → "hex string is too long, ignoring excess" perdido en la tubería
✓ Correcto
Use el comando equivalente de esta herramienta para generar un `-K` de longitud correcta y compare los bytes de clave con la otra parte

DES simple falla en OpenSSL 3 con "unsupported"

El provider por defecto de OpenSSL 3 no tiene des-ecb/des-cbc; ejecutarlo sin más lanza digital envelope routines::unsupported. Añada -provider legacy -provider default, o use des-ede3 con K‖K‖K (algebraicamente DES simple).

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

Cuándo necesita cifrado DES en línea

Depurar la criptografía de mensajes de sistemas heredados
Cámaras de compensación bancarias, cálculo de MAC de pasarelas POS y cifrado de interfaces ERP antiguas siguen en DES/3DES. Pegue aquí el mensaje y la clave para comprobar "si la clave es correcta, qué modo, qué relleno" sin montar un entorno Java o PHP.
Migrar código heredado Java / PHP / .NET
Compare la salida de Cipher.getInstance("DES/ECB/PKCS5Padding") o de openssl_encrypt(..., 'des-ede3-cbc', ...) con esta herramienta byte a byte antes de cambiar. Las formas de 2/3 claves se detectan por la longitud de la clave: no hay nada que adivinar.
Auditorías de seguridad y docencia
Demostrar la fuga de patrones de ECB (bloques claros iguales → bloques cifrados iguales), verificar la degeneración de 3DES (K1=K2=K3 colapsa en DES simple) y comprobar el vector FIPS 81 — pan de cada día en informes de pentest y cursos de criptografía.
Generar textos cifrados de ejemplo para documentación
Cuando una wiki interna o una documentación de API necesita un ejemplo reproducible, calcúlelo aquí con una clave y un IV fijos — los lectores pueden verificarlo con el comando OpenSSL equivalente, y no se pasan datos de producción de mano en mano.

DES / 3DES y los modos de cifrado en bloques, explicados

Bloque y clave
DES procesa bloques de 64 bits en 16 rondas de Feistel, cada una con una subclave de 48 bits derivada de la clave maestra de 56 bits mediante las permutaciones de compresión PC-1/PC-2 y rotaciones programadas. Las ocho S-boxes son la única fuente de no linealidad; sus criterios de diseño nunca se han publicado por completo.
El ensamblado EDE de 3DES
C = E_K3(D_K2(E_K1(P))). El descifrado central hace que K1=K2=K3 colapse en DES simple — un objetivo de compatibilidad hacia atrás. La forma de 2 claves tiene 2×56=112 bits de material de clave nominal, pero una fuerza de seguridad efectiva de unos 80 bits según NIST (SP 800-57 Part 1); la de 3 claves es nominalmente de 168 bits con una fuerza de 112 (desaconsejada).
ECB y CBC
ECB cifra los bloques de forma independiente — bloques claros iguales producen bloques cifrados iguales, una fuga de patrones visible que los bloques de 8 bytes agravan frente a AES-ECB. CBC mezcla el bloque cifrado anterior (el IV para el primero) en el texto claro antes de cifrar, y fue la opción dominante en la banca de la era DES. Ambos modos producen un texto cifrado múltiplo de 8 bytes.
Relleno: PKCS#7 / Zero / None
PKCS#7 añade n bytes de valor n para lo que falte (si faltan 3 → 03 03 03) y a un bloque completo le añade un bloque entero — esto es el "PKCS5Padding" de Java para DES. Zero padding rellena con 0x00 y es destructivo cuando el texto claro termina de verdad en 0x00. None exige un múltiplo exacto de 8.
El legacy provider de OpenSSL 3
OpenSSL 3 movió el DES simple a un legacy provider desactivado por defecto: la CLI necesita -provider legacy -provider default, y algunas compilaciones (incluido el OpenSSL incluido en Node) lo omiten por completo. 3DES (des-ede/des-ede3) sigue en el provider por defecto. El motor pure-TS de esta herramienta no se ve afectado.

Usar DES correctamente (interoperabilidad heredada)

No use DES en sistemas nuevos, en ninguna forma
Los 56 bits del DES simple se rompen por fuerza bruta; el bloque de 64 bits arrastra el límite de cumpleaños Sweet32 (CVE-2016-2183), y NIST limita un mismo juego de claves a ≈8 MB (2²⁰ bloques) de texto claro; 2 claves está Disallowed, el cifrado con 3 claves desde 2023. Use AES-256 para cualquier cosa nueva. Esta herramienta existe para leer y migrar con seguridad los sistemas heredados.
En interoperabilidad heredada, primero la igualdad byte a byte
Antes de tocar un sistema antiguo, reproduzca aquí byte a byte el texto cifrado de los parámetros antiguos y después cambie el código. Confirme la longitud de clave, el modo, el relleno y el origen del IV (fijo frente a aleatorio, cabecera frente a fuera de banda) antes de cambiar de algoritmo.
No reutilice IV, ni siquiera en sistemas heredados
Reutilizar un IV de CBC con la misma clave expone la relación entre los primeros bloques de dos textos claros. Si un protocolo heredado exige un IV fijo, regístrelo como defecto en la lista de migración — no lo herede como convención.
Mantenga las claves fuera del código fuente
Los sistemas de la era DES suelen codificar las claves en el fuente o en la configuración en claro. Al auditar uno, ponga "cómo se almacena la clave" junto a "qué algoritmo" en el informe — en la mayoría de las brechas, lo primero era el agujero real.

Preguntas frecuentes sobre cifrado/descifrado DES

El descifrado DES falla con "bad decrypt" o un error de relleno — ¿qué reviso?
El descifrado exige que cada parámetro coincida con el lado que cifró: los bytes de la clave, la longitud de clave (8/16/24), el modo (ECB/CBC), el IV, el relleno y si el texto cifrado está en hex o Base64. Las dos trampas más habituales: longitud de clave incorrecta (una "clave DES" de 32 caracteres hex son 16 bytes — eso es 3DES de 2 claves, no DES simple) y confusión de nombres de relleno (el PKCS5Padding de Java ES PKCS#7 para DES — no elija None). El panel plegable de la derecha muestra un comando OpenSSL equivalente para la configuración actual; enviarlo a la otra parte es la forma más rápida de encontrar la divergencia.
¿Cuánto mide una clave DES? ¿Y 3DES?
DES simple: 64 bits nominales (8 bytes, 56 efectivos — un bit por byte es un bit de paridad). 3DES viene en dos formas: 2 claves (16 bytes, K1‖K2 con K3=K1) y 3 claves (24 bytes, K1‖K2‖K3). El material de clave nominal es de 112/168 bits, pero la fuerza de seguridad efectiva según NIST (SP 800-57 Part 1 Rev.5, tabla 2) es de unos 80 y 112 bits — y la forma de 3 claves también está desaconsejada. Esta herramienta deduce la forma del número de bytes; cualquier cosa que no sea 8/16/24 lanza un error — CryptoJS y openssl enc -K truncan o rellenan con ceros en silencio, que es la causa número uno de fallos de interoperabilidad.
¿Qué es el IV y cuánto mide en DES?
El IV es el valor de 8 bytes que CBC mezcla en el primer bloque; ECB no usa ninguno. Debe medir exactamente 8 bytes (16 dígitos hex o 8 caracteres ASCII). Ojo: el IV de DES mide 8 bytes y el de AES 16 — copiar una longitud de IV de AES falla de inmediato. Nunca reutilice un IV con la misma clave.
¿A qué corresponde el DES/ECB/PKCS5Padding de Java en esta herramienta?
Modo ECB + relleno PKCS#7. En el JCE, "PKCS5Padding" para DES ejecuta el algoritmo genérico PKCS#7 — PKCS#5 solo definió relleno para bloques de 8 bytes, que son precisamente los de DES. La salida de Cipher.getInstance("DES/ECB/PKCS5Padding") en Java se descifra aquí con ECB + PKCS#7 y una clave DES simple de 8 bytes. ⚠️ El 3DES de Java (DESede) solo acepta claves de 24 bytes — para la forma de 2 claves debe expandir K1‖K2 a K1‖K2‖K1 usted mismo.
¿Cómo se corresponden los nombres de algoritmo des-ede3 de PHP?
PHP toma prestados los nombres de OpenSSL: des-ede3-cbc es 3DES de 3 claves + CBC, des-ede3-ecb es 3 claves + ECB; des-ede-cbc es la forma de 2 claves. Una clave de 24 bytes selecciona 3 claves, 16 bytes selecciona 2 claves.
¿Qué son los bits de paridad de una clave DES? ¿Se comprueban?
El bit bajo de cada byte de la clave se define como bit de paridad, de modo que la verdadera clave de 56 bits cabe dentro de 64 bits. FIPS 46-3 no exige comprobarla — OpenSSL, Java y esta herramienta la ignoran; funcionan cualesquiera 8 bytes, y cambiar los bits de paridad no altera el texto cifrado. .NET es la excepción: primero normaliza la paridad y después consulta una tabla de claves débiles, así que las claves cero y demás claves débiles son rechazadas por .NET mientras que todas las demás bibliotecas cifran sin queja — una trampa que solo se dispara al migrar claves de prueba de Java/OpenSSL a .NET.
¿Qué ocurre en 3DES cuando K1 = K2?
En el 3DES de 2 claves, K3 siempre es igual a K1; si además K1 = K2, toda la cadena EDE colapsa en DES simple: E_K(D_K(E_K(P))) = E_K(P). Lo mismo ocurre cuando los tres componentes de 8 bytes de una clave de 24 bytes son idénticos. Esta herramienta cifra igualmente (primero la interoperabilidad), pero la fuerza real es entonces la de DES simple, 56 bits, no la de 3DES.
¿Sigue siendo seguro DES?
No — solo sirve para interoperar con sistemas heredados. NIST retiró el DES simple el 2005-05-19 (una clave de 56 bits se rompe por fuerza bruta; el Deep Crack de EFF lo hizo en 56 horas en 1998 y 22 horas al año siguiente con distributed.net). La SP 800-131A Rev.2 clasifica el cifrado TDEA de 2 claves como Disallowed y el de 3 claves como Disallowed después del 2023-12-31 (el descifrado permanece como "Legacy use", reservado solo para leer datos históricos); la propia SP 800-67 se retiró el 2024-01-01. El bloque pequeño de 64 bits también arrastra el límite de cumpleaños tipo Sweet32 (CVE-2016-2183) — NIST limita un mismo juego de claves a 2²⁰ bloques (≈8 MB) de texto claro. Use AES-256 para cualquier cosa nueva. Esta herramienta existe porque las cámaras de compensación bancarias, las pasarelas de pago y los viejos sistemas Java/.NET siguen procesando mensajes de la era DES — arreglarlos empieza por poder leerlos.
¿Por qué mi resultado 3DES difiere de Java/PHP?
Revise por orden de probabilidad: ① longitud de clave — la "clave DES de 32 hex" del otro lado son 16 bytes (3DES de 2 claves), y usted descifró como DES simple; ② modo — el "DES" desnudo de Java usa ECB por defecto, los nombres de OpenSSL sin sufijo de modo, des-ede3/des-ede, son ECB (el alias de CBC es -des3); el openssl_encrypt de PHP exige el nombre de algoritmo explícito — lo confuso es que por defecto devuelve texto Base64, no bytes crudos; ③ relleno — el viejo mcrypt de PHP solía usar Zero, el JCE usa PKCS#5/#7; ④ codificación — hex frente a Base64, y las mayúsculas/minúsculas; ⑤ la trampa de la contraseña en CryptoJS — pasar una cadena como "clave" dispara una derivación de clave (MD5 + sal aleatoria, salida con prefijo Salted__, distinta cada vez), que no es la clave bruta en absoluto — la causa principal de "el mismo código, un resultado distinto en cada ejecución". Esta herramienta permite alternar cada punto; el comando OpenSSL equivalente de la derecha puede enviarse a la otra parte para reproducirlo.
¿ECB o CBC — cuál debo usar?
Lo que exija el sistema con el que dialoga — en interoperabilidad heredada no hay voto. Si de verdad puede elegir, siempre CBC con un IV aleatorio: ECB convierte bloques de texto claro iguales en bloques cifrados iguales, y los bloques pequeños de 8 bytes de DES dejan ver los patrones aún más que en AES-ECB. Los protocolos bancarios de la era DES usan ambos; consulte primero el documento del protocolo.
¿Funciona sin conexión? ¿Se suben mis datos?
Todo el cálculo ocurre en su navegador (TypeScript puro, cero dependencias, cero peticiones de red); las claves y el texto claro nunca salen del dispositivo. Una vez cargada la página puede desconectarse y seguir trabajando. Es la única forma aceptable para una herramienta que maneja claves.
¿3DES de 2 o de 3 claves — cuál es más común en sistemas heredados?
2 claves (16 bytes) es lo más común: bancos y la industria de pagos desplegaron hardware con claves de 16 bytes por compatibilidad, y la SP 800-67 le mantuvo una fecha de obsolescencia aparte (anterior). Así que una "clave 3DES" de 32 caracteres hex es muy probablemente la forma de 2 claves. Esta herramienta detecta la forma automáticamente a partir del número de bytes.

Herramientas relacionadas

Ver todas las herramientas →

Descifrado AES — Compatible con OpenSSL y CryptoJS

Herramientas de Seguridad

Descifra AES en línea — GCM/CBC/CTR, frase de contraseña o clave sin procesar, detecta automáticamente el formato "U2FsdGVkX1" de OpenSSL y CryptoJS. 100 % en el navegador, las claves nunca salen de la página.

Herramienta de Cifrado AES — GCM, CBC y CTR

Herramientas de Seguridad

Cifrado AES online y gratuito — AES-128/192/256, GCM/CBC/CTR, frase de contraseña (PBKDF2) o clave sin procesar. Se ejecuta 100 % en tu navegador; nada se sube a un servidor.

Generador y verificador de hash bcrypt

Herramientas de Seguridad

Genera y verifica hashes bcrypt de contraseñas online — coste ajustable, prefijos $2b$/$2a$/$2y$. 100 % en tu navegador; tu contraseña nunca se sube.

Calculadora de suma de verificación CRC

Herramientas de Seguridad

Pega hexadecimal o texto y obtén las 63 variantes de CRC-8, CRC-16 y CRC-32. ¿Tienes una suma que no logras reproducir? Escríbela y la herramienta nombra la variante: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Todo en tu navegador.

Generador HMAC y verificador de firmas

Herramientas de Seguridad

Generador y verificador HMAC en línea gratis. Calcula HMAC-SHA256/SHA1/SHA384/SHA512 con claves en texto, hex o Base64 y salida Hex/Base64/Base64URL. 100 % en tu navegador: las claves nunca salen de la página.

Decodificador JWT

Herramientas de Seguridad

Decodifica tokens JWT online con nuestro decodificador JWT gratis. Inspecciona encabezado, carga útil, firma, expiración y reclamaciones al instante. 100% navegador — tu token nunca sale del dispositivo. Sin registro ni rastreo.