我无法理解 ASN.1 的基本概念。
如果类型是 OID,相应的数字是否实际编码在二进制数据中?
例如在此定义中:
id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
相应的 1.3.6.1.5.5.7.48.1 是否完全像这样编码在二进制文件中?
我问这个问题是因为我试图理解在 DER 文件(证书)中看到的特定值,即 04020500,但我不确定如何解释它。
最佳答案
是的,OID 被编码在二进制数据中。您提到的 OID 1.3.6.1.5.5.7.48.1 变为 2b 06 01 05 05 07 30 01 (前两个数字以单个字节编码,所有剩余的数字也以单个字节编码,因为它们都是小于 128)。
找到了 OID 编码的很好的描述 here .
但是分析 ASN.1 数据的最佳方法是将其粘贴到在线解码器中,例如http://lapo.it/asn1js/ .
关于security - ASN.1 如何编码对象标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929050/