gpt4 book ai didi

c# - ASN.1 对象标识符值大于 128

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:50 25 4
gpt4 key购买 nike

所以我理解当值小于 127 时值的编码方式。但是,在阅读 https://learn.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。我真的不完全理解这部分。

最佳答案

This article应该可以帮助您理解编码。

使用 7 位编码,第 8 位 (MSB) 用于指示编码结束。82 37 是二进制 10000010 00110111。你可以看到它由两部分组成。第一部分将 MSB 设置为 1,但第二部分(在本例中也是最后一部分)将 MSB 设置为 0,表示编码结束。如果你解码它(忽略第一部分的 MSB)它将是 0000 0010 = 256 (2*128) + 0011 0111 = 55 (2^0 + 2^1 + 2^2 + 2^4 + 2^5) = 311

关于c# - ASN.1 对象标识符值大于 128,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51589560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com