我有一个具有以下实现的类:
public class ObjectSer
{
public X509Certificate cer;
public string name;
}
我想使用ObjectSer
在XML文件中序列化System.Xml.Serialization;
的实例,以便稍后在其他应用程序中加载。当我检查输出文件时,只有name
属性。
经过一些researches我发现我应该将证书导出到byte [],所以我修改了ObjectSer
实现:
public class ObjectSer
{
public X509Certificate cer;
public string name;
public byte[] exportedBytes;
}
现在,我可以保存并加载证书,但我不想将证书导出的字节作为纯文本存储在XML文件中。我的问题是:
exportedBytes
并在加载之前解密?答案 0 :(得分:1)
我不知道您为什么要将X509Certificate序列化为XML,但总的来说我不会说。如果您坚持这样做,我建议对字节数组进行base64编码并将其保存在xml中。
关于你的安全问题;您应该只存储X509Certificate的公共部分并将私钥保存在其他位置。
我推荐以下文章Eight tips for working with X.509 certificates in .NET,其中有一些很好的提示。
答案 1 :(得分:0)
您可以将证书及其私钥存储在PKCS 12格式的文件中。 Here是有关.NET PKCS 12 API的一些信息。