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

C#中如何从ECDsa实例导出公钥

C# ECDsa公钥导出方法

基础配对导出(和ExportECPrivateKey对应)

如果你使用的是 .NET 5 及更高版本,可以直接调用ExportECPublicKey()方法,和你已经在用的ExportECPrivateKey()配对,功能完全对标RSA的ExportRSAPublicKey():

ECDsa ecdsa = ECDsa.Create();

byte[] priKey = ecdsa.ExportECPrivateKey();
// 导出EC格式公钥,和私钥配对
byte[] pubKey = ecdsa.ExportECPublicKey();

通用跨场景导出

如果需要跨语言、跨系统兼容的公钥格式,可以导出X.509标准的SubjectPublicKeyInfo格式公钥,该方法在.NET Core 3.0+、.NET 5+均支持:

byte[] spkiPubKey = ecdsa.ExportSubjectPublicKeyInfo();

PEM格式直接导出(.NET 7+支持)

如果需要直接输出PEM格式的公钥字符串,不需要手动拼接头尾和转码,可以用对应的PEM导出方法:

// EC格式PEM公钥
string ecPubKeyPem = ecdsa.ExportECPublicKeyPem();
// SPKI格式PEM公钥
string spkiPubKeyPem = ecdsa.ExportSubjectPublicKeyInfoPem();

低版本.NET Framework兼容方案

如果使用的是.NET Framework 4.x版本,没有上述内置导出方法,可以通过导出公钥参数的方式获取公钥信息:

// 传入false表示仅导出公钥参数
ECParameters pubParams = ecdsa.ExportParameters(false);
// 可按需将pubParams的Curve、Q.X、Q.Y等字段序列化为自定义格式的字节数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:15:03