作为练习,我尝试使用 BER 对 snmp oid“1.3.6.1.4.1.33500”进行编码,并以十六进制字节形式到达,如下所示。
0x2b,
0x6,
0x1,
0x4,
0x1,
0x82,
0x85,
0x5c,
我验证了第 7 个 oid 编号为 0x2 * 128 * 128 + 0x5 *128 + 0x5c = 33500。这是编码大于 32768 的 oid 编号的正确方法吗?
不确定您的实际问题是什么,因为您显然知道该怎么做。无论如何,这里有一个参考:https://learn.microsoft.com/en-ca/windows/win32/seccertenroll/about-object-identifier?redirectedfrom=MSDN
我认为你确实犯了一个错误 - 这就是我得到的:
33500 = 82dc
= 1000 0010 1101 1100
->x0000010 x0000101 x1011100
->10000010 10000011 01011100
-> 8 2 8 3 5 c
= 82 83 5c
也许您遇到了转换错误,但基本上就是这样。