如何确定RSAParameters的“模数”和“指数”

时间:2013-12-09 14:10:44

标签: encryption rsa rsacryptoserviceprovider

我有一个RSA(x509证书),我想在C#程序中使用。

我做了一些研究,显然我需要使用RSAParameters导入两个东西:模数和指数。

所有我知道如何使用的是如上所述的关键块,如何获取关键块并获得模数和指数?我尝试了MSDN,但文档并没有多说。

此外,这两个字段应该是byte[]格式,我可以直接转换它们(我有一个方法Utility.ToByteArray())或者它们是否需要先以某种方式进行编码。 / p>

谢谢!

1 个答案:

答案 0 :(得分:1)

使用openssl从现有证书文件中获取模数和指数:openssl x509 -in public.crt -text

输出如下内容:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 16219001685648037895 (0xe2237819e4835807)
Signature Algorithm: sha1WithRSAEncryption
    Issuer: C=US, ST=State, L=City, O=Company, OU=Cirrus/emailAddress=email@gmail.com
    Validity
        Not Before: Dec  9 14:18:31 2013 GMT
        Not After : Dec  9 14:18:31 2014 GMT
    Subject: C=US, ST=State, L=City, O=Company, OU=Unit/emailAddress=email@gmail.com
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
            Public-Key: (1024 bit)
            Modulus:
                11:aa:41:47:f2:80:b9:6f:26:8c:19:c8:a4:0d:4a:
                51:d3:a6:87:5b:88:2a:69:7a:c0:2c:5d:cc:fe:6b:
                ed:d9:fa:bb:a0:2c:5a:76:90:b5:47:4f:01:7b:0f:
                03:51:2e:2b:44:e0:1e:a4:d7:a7:0d:a4:ae:9b:25:
                0f:10:42:ab:d5:42:a8:8e:ed:e4:34:eb:73:5a:79:
                a9:a5:40:0d:9b:ee:65:33:02:5e:cc:ec:ce:7f:0e:
                c7:14:21:43:43:82:17:db:fa:77:81:0a:4d:d8:98:
                41:48:88:06:4f:12:ec:3b:66:5d:f4:0c:44:c5:14:
                73:23:cf:9d:ec:42:3b:38:d9
            Exponent: 65537 (0x10001)
    X509v3 extensions:
        X509v3 Subject Key Identifier: 
            C5:30:71:FB:92:F1:FC:9B:57:DA:65:A6:97:10:28:C4:A6:59:28:72
        X509v3 Authority Key Identifier: 
            keyid:C5:33:71:FB:99:F1:FC:9B:58:D8:65:A6:97:10:28:C4:A6:59:28:82