Descodificador ASN.1 / DER
Os certificados têm um leitor dedicado, mas tudo o resto codificado em DER não: um pedido de assinatura de certificado, uma chave PKCS#8, um pacote PKCS#7, uma resposta OCSP, um carimbo temporal. Por dentro têm todos a mesma forma — valores etiquetados e aninhados com comprimentos explícitos — e esta ferramenta mostra essa forma para qualquer um deles. Cada nó indica onde começa, que tamanho tem o cabeçalho, quantos bytes de conteúdo se seguem e se é constructed ou primitive, que é o que torna visível um problema estrutural. Um comprimento que ultrapassa o pai, bytes a sobrar depois do valor mais exterior, um comprimento indefinido que não devia estar em DER: nada disso se nota depois de os bytes se transformarem em nomes simpáticos, e é tudo isso que explica que uma biblioteca recuse um ficheiro aparentemente correto. Os primitivos são descodificados em vez de despejados: os identificadores de objeto recebem nome quando são conhecidos, as cadeias são descodificadas com o conjunto de caracteres da sua etiqueta, os inteiros aparecem por inteiro e um BIT STRING indica o seu enchimento. Um OCTET STRING que afinal contém mais DER — é assim que as extensões de certificado e o material de chave viajam — é assinalado e pode ser expandido no lugar. Nada é enviado, o que aqui conta porque estes blocos são chaves tantas vezes como certificados.
As extensões de certificado e o material de chave aninham outra estrutura dentro de uma cadeia; isto abre-a no lugar.
Tudo é descodificado no seu navegador e nada é enviado, mas uma chave privada inspeciona-se melhor com uma ferramenta local.
Cole um bloco PEM, base64 ou hex para descodificar.
Como usar
- Cole um bloco PEM, base64 ou hex, ou largue um ficheiro .der.
- Leia a árvore: deslocamento, comprimento do cabeçalho, comprimento do conteúdo, etiqueta e valor.
- Ligue a expansão para abrir o DER escondido nos OCTET e BIT STRING.
- Repare no aviso de bytes sobrantes: o ficheiro contém mais do que uma estrutura.
- Copie a listagem se quiser compará-la com a saída de outra ferramenta.
Perguntas frequentes
- Em que difere do descodificador de certificados?
- O descodificador de certificados percebe o que um certificado X.509 significa: sujeito, validade, nomes alternativos. Este percebe apenas a codificação, por isso funciona com um CSR, uma chave, um pacote PKCS#7 ou qualquer coisa em DER, e por isso mostra deslocamentos e comprimentos em vez de nomes de campos.
- O que são os números no início de cada linha?
- O deslocamento do valor dentro do ficheiro, depois o comprimento do cabeçalho e o do conteúdo. Juntos permitem localizar qualquer nó num despejo hexadecimal, e são a forma de detetar um comprimento que não cabe dentro do pai.
- Porque é que um OCTET STRING é marcado como contendo DER?
- Porque analisar o conteúdo como DER o consumiu exatamente, o que quase sempre significa que há outra estrutura aninhada lá dentro — é assim que as extensões e o material de chave viajam. Continua a ser um palpite, por isso é assinalado em vez de assumido, e expandir é opcional.
- O que significa um comprimento indefinido?
- Que o valor segue até um marcador de fim de conteúdo em vez de declarar o tamanho. O BER permite, o DER não, por isso vê-lo em algo que devia ser DER costuma explicar por que motivo um analisador rigoroso recusou o ficheiro.
- Posso colar uma chave privada?
- A estrutura é descodificada, já que é DER como tudo o resto, e nada é enviado. Ainda assim, uma chave privada inspeciona-se melhor com uma ferramenta local: o hábito de colar chaves em páginas web é o que acaba por expor uma.
- Os valores são verificados?
- Não. Isto lê a codificação, não o significado: não verifica assinaturas, cadeias nem validade. Diz-lhe o que os bytes dizem.
Ferramentas relacionadas
Descodificador de MessagePack
Cole bytes MessagePack em base64 ou hex e leia os valores — tipos, mapas aninhados, binários e datas — no seu navegador.
Decodificador JWT
Decodifique um JSON Web Token para inspecionar cabeçalho, claims e expiração.
Descodificador de Protobuf (sem .proto)
Cole bytes protobuf em base64 ou hex e leia os campos — números, tipos de wire, mensagens aninhadas, cadeias e arrays packed — sem precisar de um esquema.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Codificador e Decodificador Quoted-Printable
Codifique texto para MIME Quoted-Printable (RFC 2045) ou decodifique — com escapes =XX, quebras de linha suaves e UTF-8 — tudo no seu navegador, com quebra de linha em 76 caracteres ao codificar.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.