C# · 12月 22, 2021

c# – 将.NET XML格式的DSA非对称密钥转换为PEM格式

我有一个使用DSACryptoServiceProvider.ToXmlString导出的DSA私钥,我需要将其转换为PEM格式(“file.pem”),因此我可以使用openssl_pkey_get_private函数在 PHP中打开它.

我该如何做到这一点?

解决方案可以使用DSACryptoServiceProvider.ExportCspBlob方法,如果它有任何帮助,我只需要转换密钥.

解决方法 使用bouncycastle C#库类DotNetUtilities,相当容易. DSACryptoServiceProvider dsa = new DSACryptoServiceProvider(1024);AsymmetricCipherKeyPair dsaKey = DotNetUtilities.GetDsaKeyPair(dsa);using (StreamWriter sw = new StreamWriter(“dsa.pem”)){ PemWriter pw = new PemWriter(sw); pw.WriteObject(dsaKey);}