You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ImportFromPem加载RSA私钥报错“密钥无效”,求排查原因

问题分析与解决

核心原因:私钥字符串格式错误

你的代码里私钥用了@前缀的字符串字面量,里面的\n会被当作普通字符而非换行符,而PEM格式要求每一行是64字符以内的Base64内容,并且用实际换行分隔。错误的\n字符会直接破坏PEM的结构,导致ImportFromPem无法识别有效密钥。

修复步骤

  1. 修正私钥的换行格式:
    把字符串里的\n替换成实际换行(在C#多行字符串里直接换行),或者去掉@前缀让\n被解析为换行。示例如下:

    string privateKeyPem = @"-----BEGIN RSA PRIVATE KEY-----
    MIIBOgIBAAJBAKj34GkxFhD90vcNLYLInFEX6Ppy1tPf9Cnzj4p4WGeKLs1Pt8Qu
    KUpRKfFLfRYC9AIKjbJTWit+CqvjWYzvQwECAwEAAQJAIJLixBy2qpFoS4DSmoEm
    o3qGy0t6z09AIJtH+5OeRV1be+N4cDYJKffGzDa88vQENZiRm0GRq6a+HPGQMd2k
    TQIhAKMSvzIBnni7ot/OSie2TmJLY4SwTQAevXysE2RbFDYdAiEBCUEaRQnMnbp7
    9mxDXDf6AU0cN/RPBjb9qSHDcWZHGzUCIG2Es59z8ugGrDY+pxLQnwfotadxd+Uy
    v/Ow5T0q5gIJAiEAyS4RaI9YG8EWx/2w0T67ZUVAw8eOMB6BIUg0Xcu+3okCIBOs
    /5OiPgoTdSy7bcF9IGpSE8ZgGKzgYQVZeN97YE00
    -----END RSA PRIVATE KEY-----";
    
  2. 验证私钥本身有效性:
    你提供的私钥是PKCS#1格式的RSA私钥,结构本身合法(修正换行后),也可以用OpenSSL工具验证:

    openssl rsa -check -in private_key.pem
    

关于填充的说明

填充是解密阶段需要关注的问题(比如选择RSAEncryptionPadding.OaepSHA256或Pkcs1),和当前私钥导入失败无关。只有私钥成功导入后,才需要匹配加密时使用的填充方式来完成解密。

内容的提问来源于stack exchange,提问作者u314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:00:31