DER 二进制 (.der)

ITU-T 标准

Distinguished Encoding Rules (DER) 是 ASN.1 数据结构的严格且规范的二进制编码标准,为安全证书和密码密钥提供无歧义、按位精确的表示形式。

将 DER 转换为 PEM

免费的浏览器端 DER 转 PEM 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 DER 文件:

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (Magic Bytes)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 DER 文件:

十六进制签名 (偏移量 0):

30 82

ASCII 表示形式: 0\x82

标准化: ITU-T Recommendation X.690

技术规格

容器架构Strict canonical binary encoding of ASN.1 structures using Tag-Length-Value (TLV) triples
压缩方式Uncompressed binary data
字节序Big-Endian ASN.1 encoding
色彩空间N/A (Cryptographic Binary Stream)
通道与结构Cryptographic keys, X.509 certificates, CRLs, and PKCS structures
最大尺寸Unbounded ASN.1 length
透明度Binary ASN.1 data structure
流式传输与渐进式加载Deterministic single-pass canonical decoding

技术对比矩阵:DER 对比同类产品

技术属性DER (当前)PEMCRTP12
数据表示严格的二进制 ASN.1 编码Base64 ASCII 铠甲文本Base64 PEM 或二进制 DER加密的二进制 PKCS #12 存档
确定性哈希100% 规范位流取决于空白/横幅取决于格式使用盐值/IV 加密
文件大小最小(比 PEM 小约 33%)由于 Base64 而更大 (+33%)由于 Base64 而更大 (+33%)由于加密包装而更大
Java 与硬件支持原生标准在 Java 中需要转换在 Java 中需要转换支持作为密钥库

常见损坏模式与十六进制恢复指南

OpenSSL 错误:'asn1 encoding routines:ASN1_get_object:header too long'。

根本原因: ASN.1 序列头中的标签-长度-值 (TLV) 字节损坏。

恢复方法: 使用 File2File 证书工具进行转码,以重建有效的 DER 规范字节。

安全分析与解析器攻击向量

DER 解码器会解析长度描述符,其中整数下溢/溢出可能会在原生密码库中触发缓冲区溢出。

已知攻击向量

  • 在深度嵌套的 ASN.1 不定长解码期间发生整数溢出。
  • 解析格式错误的位字符串时发生越界读取。
  • 通过嵌套的 ASN.1 递归炸弹实施拒绝服务攻击。

防御性最佳实践:

历史渊源与里程碑

2021ITU-T X.690 修订版在现代硬件令牌中稳定了 ASN.1 DER 规范。
1997被 Java 加密体系结构 (JCA) 采用,用于二进制密钥编码 (X509EncodedKeySpec)。
1988作为基本编码规则 (BER) 的严格子集,在 CCITT / ITU-T 建议书 X.690 下标准化。

核心优势与特点

  • 规范且确定:保证相同的数据始终产生完全相同的二进制哈希,这对于数字签名至关重要。
  • 比 PEM 更紧凑:通过省略 Base64 编码和 ASCII 横幅,节省了约 33% 的开销。
  • 硬件安全模块 (HSM)、智能卡和 Java 密钥库的原生格式。

技术局限与劣势

  • 二进制格式无法在文本编辑器中查看、编辑或复制粘贴。
  • 在网络托管环境中不太常见,因为网络环境绝大多数更喜欢基于文本的 PEM/CRT 文件。
  • 严格的编码规则意味着任何微小的填充差异都会导致解析拒绝。

趣味技术冷知识

  • DER 是 BER(基本编码规则)的严格子集;虽然 BER 允许多种有效方式来编码值,但 DER 仅允许一种规范方式。
  • 如果对 DER 文件进行 Base64 编码并将其包装在"-----BEGIN CERTIFICATE-----"中,您将获得一个标准的 PEM 文件。
  • Java 的 KeyFactory 要求以原始 DER 格式提供 RSA 公钥和私钥。

常见技术问题

DER 和 PEM 有什么区别?

DER 是证书或密钥的原始二进制格式。PEM 只是将相同的 DER 文件转换为可读的 Base64 文本,并带有 '-----BEGIN...-----' 标头。

如何将 DER 转换为 PEM?

将您的 .der 文件上传到 File2File.app,即可直接在浏览器中用一秒钟将其转换为标准的 .pem 文本证书。

为什么 Java 使用 DER 密钥?

Java 密码学架构 (JCA) 使用 DER 编码的 PKCS#8 和 X.509 字节数组作为其原生密钥规范。