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

Pay*_*aya 6 .net php c# openssl cryptography

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

我该如何做到这一点?

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

Jam*_*olk 10

使用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);
}
Run Code Online (Sandbox Code Playgroud)