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

如何将XML格式的RSA私钥读取并赋值到C#变量

如何将XML格式的RSA私钥赋值到C#变量

方法1:直接定义为字符串常量

和你给出的PEM格式示例逻辑一致,XML私钥可以直接作为字符串常量赋值,推荐用C#的逐字字符串(@前缀),无需处理XML中<、>等特殊字符的转义:

private const string RsaPrivateKeyXml = @"<RSAKeyValue><Modulus>s9vdfnfgyMbqIL31eQX35eA/pdM2uwm8MSxv36t0irpuMYuObR210kWCFCu/n766jZ3c5LNtmeRfo5AA8UDMafJ6EtZQnUx76rEeMJobDRgWrUdTb9x5EEmcL0um/vijOjI5Lk8PVqjg5tCJ19E8A8oK5dkc2MPDq15ksGnT40b9/TMocSSedNcCc4JTfCBWv4KXAm7s+Gty/y47LfOTwu2MEEECSYfPQZ3CKhkxXX0SwgDYMJW0ou1yOdeQPehIkxSjt9Ynd20zw2AyjsmMvb0T635dJlSLzmVTV5HYo9Aghgq7lY1NH+BrMJ+keMhzQC+wUwa+wv2x/mCIzX2y+Q==</Modulus><Exponent>AQAB</Exponent><P>y9MxLWJ4URJUWLwwJC/P08rxeP0KZDJ5JD+0kCDDFRqlMI41jF5VVllbxokZaqOpQaMIFvPMwHR3etqT9n90ZYZKORC6TGvdaHJ/ewWpCtMrLusG5ypCHXfPiLL425yTaBaDSbbnHV3ooPL4GWX1n9+GAr1EsoGodNYyBzEnb1M=</P><Q>4eYnmYJtSpyv3995eQk0uIAV4Q8ijHbBtUp8iK2k92pIyascnMdpglbNSGwPF+siwbtN/4VvZZXjHbWMe2KbhqcR6wlH+nxtyQWzBRKCEsG+JTmS4TBKwpKC5sFv3+C17CCB/L2zvGrR0vW5JErQ0KmWzbPqL20A4ViKc+QvZwM=</Q><DP>qbd+2VWG7aqfhQud4mPVX3s6ug2pG2lTqbVJ+kDtb6MyLU4clHbwA+iAHL6H5V3FT5wa3lG/Cflwi2F5luTl3KuHHiEpnvyp7ZB5ScyaxyKycGzO4Kk1SCg9LIwp32Nu8lrckwKzSqapT2tA3pUhgy+x/JHwo9qGlFLOcWKifXU=</DP><DQ>gDQowTx+XlvyjLG9tO1+mD9JK4N1bhZv9T2i08cI2sndKWcNRAUAYlJ1CucY4dA215A/wgaupA6e6NuCMPxTm+Xxi1ynFwfLHs03Pme0noSKL4IvU9Iee7K+y8t4fKyBUtNYMmJPQV22W23Nd0VmoSW+SlwTSnsohrvDR+Z26JU=</DQ><InverseQ>PO6hut+3R4JqDVgWxZ6uia+1NmH0ywXwr/wuxzj9/IOSD1nJOsBWSOqge6qXe9IBbTdpS0RAdV7g96O/DgiD+nhZoC4eOx2GNehnhaGWzHa+jPGP57Gy1v7IF7uKOaSbnAarEWq8i/dQxwhyKnVQ6lMaLGrT5BxDalTJKof80Nc=</InverseQ><D>C9QLzwNnPw0F3L1hZWIlGXMT/H3VfZt4SuuXN+h4s57rHEsHRNnNWVTE5zqxUXojnqihHFFIhfRk7cbMqREP4G/X42FAz/d1tsuLJrsbyFKrOx4TuKmRNKcCpIGfK+mCIpOm+wqsAZD9qXBRgGX8QmuJJ/CNWxwUxDJjAM8U5j9qteuouqZyMjxYld9krSkouVxZeACC7VpO3UjAd/QfIs6p8q6mjRnsTUiVeIfTlzhBwNY8AyjaneIaenTWhEfIW9A0ZFbIz+D2sacBs5dbzB2Q4S2rM3OgMjbj0c6kYiI/UXsUZuRK/ZI7nvlovQKU1yFgo+OkXDpoB1HMrS2xGQ==</D>
</RSAKeyValue>";

如果偏好你提供的PEM示例那种多行拼接格式,也可以拆分内容逐行拼接:

private const string RsaPrivateKeyXml = "<RSAKeyValue><Modulus>s9vdfnfgyMbqIL31eQX35eA/pdM2uwm8MSxv36t0irpuMYuObR210kWCFCu/n766jZ3c5LNtmeRfo5AA8UDMafJ6EtZQnUx76rEeMJobDRgWrUdTb9x5EEmcL0um/vijOjI5Lk8PVqjg5tCJ19E8A8oK5dkc2MPDq15ksGnT40b9/TMocSSedNcCc4JTfCBWv4KXAm7s+Gty/y47LfOTwu2MEEECSYfPQZ3CKhkxXX0SwgDYMJW0ou1yOdeQPehIkxSjt9Ynd20zw2AyjsmMvb0T635dJlSLzmVTV5HYo9Aghgq7lY1NH+BrMJ+keMhzQC+wUwa+wv2x/mCIzX2y+Q==</Modulus>"
+ "<Exponent>AQAB</Exponent>"
+ "<P>y9MxLWJ4URJUWLwwJC/P08rxeP0KZDJ5JD+0kCDDFRqlMI41jF5VVllbxokZaqOpQaMIFvPMwHR3etqT9n90ZYZKORC6TGvdaHJ/ewWpCtMrLusG5ypCHXfPiLL425yTaBaDSbbnHV3ooPL4GWX1n9+GAr1EsoGodNYyBzEnb1M=</P>"
+ "<Q>4eYnmYJtSpyv3995eQk0uIAV4Q8ijHbBtUp8iK2k92pIyascnMdpglbNSGwPF+siwbtN/4VvZZXjHbWMe2KbhqcR6wlH+nxtyQWzBRKCEsG+JTmS4TBKwpKC5sFv3+C17CCB/L2zvGrR0vW5JErQ0KmWzbPqL20A4ViKc+QvZwM=</Q>"
+ "<DP>qbd+2VWG7aqfhQud4mPVX3s6ug2pG2lTqbVJ+kDtb6MyLU4clHbwA+iAHL6H5V3FT5wa3lG/Cflwi2F5luTl3KuHHiEpnvyp7ZB5ScyaxyKycGzO4Kk1SCg9LIwp32Nu8lrckwKzSqapT2tA3pUhgy+x/JHwo9qGlFLOcWKifXU=</DP>"
+ "<DQ>gDQowTx+XlvyjLG9tO1+mD9JK4N1bhZv9T2i08cI2sndKWcNRAUAYlJ1CucY4dA215A/wgaupA6e6NuCMPxTm+Xxi1ynFwfLHs03Pme0noSKL4IvU9Iee7K+y8t4fKyBUtNYMmJPQV22W23Nd0VmoSW+SlwTSnsohrvDR+Z26JU=</DQ>"
+ "<InverseQ>PO6hut+3R4JqDVgWxZ6uia+1NmH0ywXwr/wuxzj9/IOSD1nJOsBWSOqge6qXe9IBbTdpS0RAdV7g96O/DgiD+nhZoC4eOx2GNehnhaGWzHa+jPGP57Gy1v7IF7uKOaSbnAarEWq8i/dQxwhyKnVQ6lMaLGrT5BxDalTJKof80Nc=</InverseQ>"
+ "<D>C9QLzwNnPw0F3L1hZWIlGXMT/H3VfZt4SuuXN+h4s57rHEsHRNnNWVTE5zqxUXojnqihHFFIhfRk7cbMqREP4G/X42FAz/d1tsuLJrsbyFKrOx4TuKmRNKcCpIGfK+mCIpOm+wqsAZD9qXBRgGX8QmuJJ/CNWxwUxDJjAM8U5j9qteuouqZyMjxYld9krSkouVxZeACC7VpO3UjAd/QfIs6p8q6mjRnsTUiVeIfTlzhBwNY8AyjaneIaenTWhEfIW9A0ZFbIz+D2sacBs5dbzB2Q4S2rM3OgMjbj0c6kYiI/UXsUZuRK/ZI7nvlovQKU1yFgo+OkXDpoB1HMrS2xGQ==</D>"
+ "</RSAKeyValue>";

方法2:从XML文件读取(更推荐)

如果私钥存放在单独的XML文件中,直接读取文件内容到变量更便于维护:

// 读取XML私钥文件内容到字符串变量
string rsaPrivateKeyXml = File.ReadAllText(@"你的私钥文件路径.xml");

// 直接导入到RSA对象使用
using var rsa = RSA.Create();
rsa.FromXmlString(rsaPrivateKeyXml);

注意事项

  • 逐字字符串会保留所有换行和空格,适合直接复制粘贴XML内容。
  • 拼接格式要确保每行字符串首尾无多余空格,避免XML格式错误。
  • .NET原生支持这种XML格式的RSA密钥,导入时直接调用FromXmlString方法即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:25:56