1

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

也许解决方案很简单,我就是不明白,但如果有人能给我建议,我将不胜感激!(过去两天谷歌太多了!!)

4

2 回答 2

1

我对 c# 不熟悉,但知道使用 PHP 您首先需要从 CSR 获取 CSR 的公钥,然后检查公钥中的密钥大小。

openssl_pkey_get_details(openssl_csr_get_public_key($your_csr));

返回是一个包含位大小的公钥信息数组。

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

于 2011-03-28T02:58:45.460 回答
0

这似乎很简单:只需查看 CSR 本身的前几个字符。如果以 MIIC 开头,则为 512 位,MIID 为 1024 位。这是一个更简单的视图:

起始数量
CSR 中的字符位
---------- ------------
MIIC 512 位
MIID 1024 位
MIIE 2048 位
MIIG 4096 位
MIIK 8192 位
MIIS 16384 位

我还没有得到验证(通过规范文档的条款)这是 100% 可靠的,但它似乎是正确的,得到了​​我所做的基于示例的研究的支持(在多个站点和我的个人经验中找到)生成具有不同位数的 CSR)。

于 2011-03-09T08:56:38.787 回答