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

替换RSA公钥时出现ASN1 corrupted data错误如何解决?

问题根源

你当前使用的ImportRSAPublicKey方法仅适配PKCS#1格式的RSA公钥,对应文件头尾标识为-----BEGIN RSA PUBLIC KEY-----。而你读取的公钥文件头尾是-----BEGIN PUBLIC KEY-----,属于X.509标准的SubjectPublicKeyInfo通用公钥结构,两者的ASN.1编码规则不匹配,因此触发了ASN1数据损坏的异常。

解决方案

仅需要替换公钥导入的方法即可,其余逻辑无需修改:
把原来的导入代码:

recipientRSA.ImportRSAPublicKey(new ReadOnlySpan<byte>(rsaPublicKeyBytes), out _);

替换为:

recipientRSA.ImportSubjectPublicKeyInfo(new ReadOnlySpan<byte>(rsaPublicKeyBytes), out _);

补充说明

后续遇到密钥导入报错可优先核对格式和导入方法的匹配关系:

  • PKCS#1 RSA私钥(头尾-----BEGIN RSA PRIVATE KEY-----):使用ImportRSAPrivateKey
  • PKCS#8 通用私钥(头尾-----BEGIN PRIVATE KEY-----):使用ImportPkcs8PrivateKey
  • PKCS#1 RSA公钥(头尾-----BEGIN RSA PUBLIC KEY-----):使用ImportRSAPublicKey
  • X.509 SubjectPublicKeyInfo公钥(头尾-----BEGIN PUBLIC KEY-----):使用ImportSubjectPublicKeyInfo

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:15:03