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

OpenSSL生成RSA公钥导入.NET Core调用ImportRSAPublicKey报ASN1错误如何解决

问题原因

你当前生成的公钥格式和ImportRSAPublicKey要求的格式不匹配:

  • OpenSSL默认执行rsa -pubout输出的是X.509 SubjectPublicKeyInfo格式公钥,头尾标识为-----BEGIN PUBLIC KEY-----,对应.NET的ImportSubjectPublicKeyInfo导入方法
  • ImportRSAPublicKey要求的是PKCS#1格式的RSA公钥,头尾标识为-----BEGIN RSA PUBLIC KEY-----,两者ASN.1编码结构存在差异,所以会抛出ASN1数据损坏的异常。
解决方案

修改OpenSSL导出公钥的命令,添加-traditional参数强制输出PKCS#1格式:

openssl rsa -in name_of_private_key.pem -pubout -traditional > name_of_public_key.pem

导出完成后提取头尾标识之间的Base64文本、移除换行符后,即可用你原有ImportRSAPublicKey的代码正常导入。

如果已经生成过X.509格式的公钥,不需要重新生成私钥,直接执行转换命令即可得到PKCS#1格式公钥:

openssl rsa -pubin -in 已有的X509公钥.pem -RSAPublicKey_out -traditional > pkcs1公钥.pem

内容的提问来源于stack exchange,提问作者m.edmondson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:09:03