Decodificador ASN.1 / DER
Los certificados tienen un lector propio, pero todo lo demás codificado en DER no: una solicitud de firma de certificado, una clave PKCS#8, un paquete PKCS#7, una respuesta OCSP, un sello de tiempo. Por dentro todos tienen la misma forma —valores etiquetados y anidados con longitudes explícitas— y esta herramienta muestra esa forma para cualquiera de ellos. Cada nodo indica dónde empieza, cuánto ocupa su cabecera, cuántos bytes de contenido siguen y si es constructed o primitive, que es lo que hace visible un problema estructural. Una longitud que se sale de su padre, bytes que sobran tras el valor más externo, una longitud indefinida que no debería estar en DER: nada de eso se aprecia una vez que los bytes se han convertido en nombres amables, y todo ello explica por qué una biblioteca rechaza un archivo que parece correcto. Los primitivos se decodifican en vez de volcarse: los identificadores de objeto se nombran cuando son conocidos, las cadenas se decodifican con el juego de caracteres de su etiqueta, los enteros se muestran completos y un BIT STRING informa de su relleno. Un OCTET STRING que resulta contener más DER —así se transportan las extensiones de certificado y el material de clave— se marca y puede expandirse en el sitio. No se sube nada, lo que aquí importa porque estos bloques son claves tantas veces como certificados.
Las extensiones de certificado y el material de clave anidan otra estructura dentro de una cadena; esto la abre en el sitio.
Todo se decodifica en tu navegador y no se envía a ninguna parte, pero una clave privada se inspecciona mejor con una herramienta local.
Pega un bloque PEM, base64 o hex para decodificarlo.
Cómo usar
- Pega un bloque PEM, base64 o hex, o suelta un archivo .der.
- Lee el árbol: desplazamiento, longitud de cabecera, longitud de contenido, etiqueta y valor.
- Activa la expansión para abrir el DER escondido en los OCTET y BIT STRING.
- Fíjate en el aviso de bytes sobrantes: el archivo contiene más de una estructura.
- Copia el listado si quieres compararlo con la salida de otra herramienta.
Preguntas frecuentes
- ¿En qué se diferencia del decodificador de certificados?
- El decodificador de certificados entiende lo que significa un certificado X.509: sujeto, caducidad, nombres alternativos. Este entiende solo la codificación, por eso funciona con una CSR, una clave, un paquete PKCS#7 o cualquier cosa en DER, y por eso muestra desplazamientos y longitudes en vez de nombres de campo.
- ¿Qué son los números al principio de cada línea?
- El desplazamiento del valor dentro del archivo, luego la longitud de su cabecera y la de su contenido. Juntos te permiten localizar cualquier nodo en un volcado hexadecimal, y son la forma de detectar una longitud que no cabe dentro de su padre.
- ¿Por qué se marca un OCTET STRING como que contiene DER?
- Porque analizar su contenido como DER lo consumió exactamente, lo que casi siempre significa que hay otra estructura anidada dentro: así se transportan las extensiones y el material de clave. Sigue siendo una conjetura, así que se marca en vez de darse por hecho, y expandirlo es opcional.
- ¿Qué significa una longitud indefinida?
- Que el valor sigue hasta un marcador de fin de contenido en lugar de declarar su tamaño. BER lo permite, DER no, así que verlo en algo que debería ser DER suele explicar por qué un analizador estricto rechazó el archivo.
- ¿Puedo pegar una clave privada?
- Su estructura se decodificará, porque es DER como todo lo demás, y no se sube nada. Aun así, una clave privada se inspecciona mejor con una herramienta local: la costumbre de pegar claves en páginas web es lo que acaba filtrando una.
- ¿Se verifican los valores?
- No. Esto lee la codificación, no el significado: no comprueba una firma, una cadena ni una fecha de caducidad. Te dice lo que dicen los bytes.
Herramientas relacionadas
Decodificador de MessagePack
Pega bytes MessagePack en base64 o hex y lee los valores —tipos, mapas anidados, binarios y marcas de tiempo— en tu navegador.
Decodificador JWT
Decodifica un JSON Web Token para ver su cabecera, claims y expiración.
Decodificador de Protobuf (sin .proto)
Pega bytes protobuf en base64 o hex y lee los campos —números, tipos de wire, mensajes anidados, cadenas y arrays packed— sin necesidad de un esquema.
Codificador / Decodificador Base64
Codifica texto a Base64 o decodifica Base64 a texto al instante.
Codificador y Decodificador Quoted-Printable
Codifica texto a MIME Quoted-Printable (RFC 2045) o decodifícalo — con escapes =XX, saltos de línea suaves y UTF-8 — todo en tu navegador, con ajuste de línea a 76 caracteres al codificar.
Codificador / Decodificador de URL
Codifica texto para URLs en porcentaje, o decodifica URLs a texto.