阅读509证书的公钥,发现一个字节不明白是什么含义,帮忙看看!
pale 2005-03-17 05:16:05 我从IE中导出了一个证书文件,根据ASN1格式以及BER编码的介绍依次读出这个证书文件的数据,可发现在公钥数据的地方有一个字节不明白是什么含义,放在这里有什么用,希望哪位大侠帮忙看看!
我分解出公钥数据部分如下所示:
03 81 8d 00 30 81 89 02 81 81 00 e0 4e 10 0e b8
a7 ef 21 ca 60 5a dc 9f 1e 3e 83 77 5a 29 2e f9
4e e5 08 5d de e1 cf 09 c0 1f 44 b7 07 a8 4b a4
22 30 3b 19 06 83 ee f3 ac 27 78 ae ca d6 40 2b
ce 79 01 e1 9d 56 8b 36 72 b1 63 90 5f a0 b2 c0
66 a6 49 c5 3c fa 26 a2 62 c3 d3 b5 cc 61 15 4c
f2 3f b4 e7 45 08 43 89 7f 6a 8d d5 66 fb d7 ff
64 00 c4 11 fd 2c a3 0b 75 b0 fb e5 ac 26 65 a3
81 e6 66 49 3d 1d 73 7a 9b 71 d7 02 03 01 00 01
03表明它是一个OCTET STRING格式的数据,81代表长格式,8d代表数据长度
下来那个00是什么含义呢?
接下来30代表SEQUENCE,81代表长格式,89代表数据长度
然后02代表BIT STRING 格式的数据,在这里实际上是RSA公钥数据的合数模n,可它的长度是81???
我看了这个证书密钥是1024位的,也就是说它的长度用十六进制表示应该是80,可确实不明白这里为什么是81,而且多的这一个字节就是紧跟在长度后面的第一个字节的数据00
我导出了好多个证书来观察,发现结果都是一样,对于合数模n,给出的长度,都比实际多1,而且都是00
这是怎么回事?
有谁能帮帮我呢?谢谢了