【发布时间】:2019-01-06 10:39:24
【问题描述】:
所以我了解当值小于 127 时值的编码方式。但是,在阅读 https://docs.microsoft.com/en-us/windows/desktop/seccertenroll/about-object-identifier 之后,我仍然不明白大于 128 的值是如何编码的。例如:
1.3.6.1.4.1.311.21.20
被编码成:
2b 06 01 04 01 82 37 15 14
311 是如何编码成82 37 的?当您将8237 转换为十进制时,您将得到33335。这部分我不是很明白。
【问题讨论】:
-
311 是 0x137。所以最低有效字节是相同的。看起来您正在使用 Unicode 编码,字符定义是字符 1 到 127 的 ascii 代码。128 以上的 Unicode 字符完全不同。 unicode 字符的第一个字节是组指示符(如拉丁字符),第二个字符唯一地标识每个字符。
-
@jdweng:这是 ASN.1 对象标识符的 DER 编码,
标签: c# encoding binary cryptography asn.1