【问题标题】:How do I get the keysize of a given CSR in bit?如何获得给定 CSR 的密钥大小?
【发布时间】:2011-02-03 11:35:33
【问题描述】:

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

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

【问题讨论】:

    标签: c# size key pem csr


    【解决方案1】:

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

    openssl_pkey_get_details(openssl_csr_get_public_key($your_csr));
    

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我认为这些信息并不准确。我有一个公钥大小为 2048 的 CSR,它从以下 MIICYTCC 开始
      猜你喜欢
      • 2014-07-15
      • 2011-12-21
      • 2020-11-19
      • 2011-04-30
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多