【问题标题】:Cannot Load private key from a RSA PRIVATE KEY file in C# [duplicate]无法从 C# 中的 RSA PRIVATE KEY 文件加载私钥 [重复]
【发布时间】:2017-10-30 23:19:00
【问题描述】:

我想用RSA.SignHash() 签署一些数据。 我在 Linux OpenSSL 中通过以下命令创建了一个 RSA 私钥文件。

openssl genrsa -out private_key.pem 1024

但是当我想通过X509Certificate2的对象加载这个键时,得到“找不到请求的对象”。例外。 这是我的代码:

string keyFilePath = @"C:\Keys\private_key.pem";
X509Certificate2 cert = new X509Certificate2(keyFilePath);

我使用了Chilkat 库,一切正常,但是Microsoft 没有任何步骤可以在没有任何第三方工具的情况下使用它吗? 这是我的 pem 文件内容:

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC23ivEPgSqxCcSTNUY8IbjCO0+0FwarI/azCHp97cWCBaosFAe
mN9eI7u3agv2tCk+QrKrFDlkYWskFiADm55NMvDE1fuyy7db84MMh+GFcyemYZ0o
yG5oBYPw7aNY7N7fBO5pbF9M/v4TMjKoxYGxk2kl58KT9cmvVH7TaF8xkwIDAQAB
AoGAfVzRpDbf/DF8l48Uh4Rc9EeqXOV6Ps8Nz3EhzsODQBdLcVltk4w5lM/qYFLS
4M2heI1A7wduUOJ4EMUaLV8BpcFkA2kSPah48R/1EGAMOpaD09j8qHJLCHJ2uiSc
Hqi6z/6GhpSLzU5XR1lj0UIPy9aC9X0yPAao0WZ+5YgTdAECQQDoCwCmFD5r00Y0
DcQGbAU/eekHJwNk48ACvIDquK/ysqA8aXvWgyXd3oa82fUSvSAMDGNFYr9xOxqF
Vnnsi6VXAkEAyb9yymbehjwwl33CjPcsIRbjetLDwPgWhVYii4q7jELlefyC8mHL
cpn0ejS4ln/uTUuNZCdYNHvYjQ8eXfaUJQJADfM7YsCs0AavncmGE2zDFAHcRJXP
2mzmykNS7MmVql2azIb67vaLfD84knn4Bdxg5NiJz04UfFY1TfbY9aOfmQJBAJGX
jsCQMiBPSYXZ5M+UBI2wleNqPIiCwMXinjVzndsf37kDyIAgoRCIGA0lBNzfX9r6
HgRb/GSLx4Asm+6VZt0CQQC2DwtG+CKDyqEvhIGqlrAuQivMLJExZZV3kjsFSWOA
CZFSr8JsSghb3bbxYexkzbWfalESYRkqu+zNWDPs9gpt
-----END RSA PRIVATE KEY-----

【问题讨论】:

标签: c# openssl rsa x509certificate2


【解决方案1】:

不,没有第三方工具就没有友好的方法可以做到这一点。如果您只有私钥,那么恕我直言 new X509Certificate2(keyFilePath) 没有意义。

您可以做的是实现(或使用库)来解析私钥。然后将解析后的私钥参数编码成一个xml结构,可以使用RSA.FromXmlString导入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2014-07-02
    • 1970-01-01
    • 2013-12-02
    • 2012-07-09
    相关资源
    最近更新 更多