我正在使用Liping Share ASN1 Editor在.net(c#)中编写一个程序,它可以很好地解码给定的CSR。
所以,我的问题是:如何获得给定CSR的位大小? (我想测试它是否为1024或更高)
我已经尝试过.net X509Certificate类,但只能使用证书,而不能使用CSR
不可能使用Java类或解析包含CSR解码器的Webside。 (虽然我已经认为这比解决问题容易得多)
也许解决方案非常简单,我只是不明白,但如果有人能给我一个建议,我真的很感激! (过去两天谷歌过多!!)
答案 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。)