如何获得给定CSR的密钥?

时间:2011-02-03 11:35:34

标签: c# size key pem csr

我正在使用Liping Share ASN1 Editor在.net(c#)中编写一个程序,它可以很好地解码给定的CSR。
所以,我的问题是:如何获得给定CSR的位大小? (我想测试它是否为1024或更高)
我已经尝试过.net X509Certificate类,但只能使用证书,而不能使用CSR 不可能使用Java类或解析包含CSR解码器的Webside。 (虽然我已经认为这比解决问题容易得多)

也许解决方案非常简单,我只是不明白,但如果有人能给我一个建议,我真的很感激! (过去两天谷歌过多!!)

2 个答案:

答案 0 :(得分:1)

我对c#不熟悉,但是要了解PHP,首先需要从CSR获取CSR的公钥,然后检查公钥中的密钥大小。

openssl_pkey_get_details(openssl_csr_get_public_key($your_csr));

返回的是一组公钥信息,包括位大小。

注意:我从测试和广泛研究中发现,JSmitty提到的方法不可靠。

答案 1 :(得分:0)

看起来很简单:只看CSR本身的前几个字符。如果从MIIC开始,它是512位,MIID是1024位。这是一个更简单的观点:

Beginning    Number of
Characters  bits in CSR
----------  -----------
MIIC        512-bits
MIID        1024-bits
MIIE        2048-bits
MIIG        4096-bits
MIIK        8192-bits
MIIS        16384-bits

我没有得到(通过规范文档的条款)验证这是100%可靠的,但它似乎是正确的,我已经完成的基于实例的研究支持(找到on several sites根据我个人的经验,生成具有不同位数的CSR。)