【发布时间】:2011-11-14 00:32:07
【问题描述】:
这是一个测试:
var decoded = Convert.FromBase64String(certificateBase64Encoded);
var certificate = new X509Certificate2(decoded, (string)null, X509KeyStorageFlags.Exportable);
var x = Convert.ToBase64String(certificate.Export(X509ContentType.Pkcs12));
var y = Convert.ToBase64String(certificate.Export(X509ContentType.Pkcs12));
Console.WriteLine(x == y);
当使用X509ContentType.Cert 调用时,值始终相同,因此控制台打印“True”。但是当使用 Pkcs12 选项时,值总是有很大的不同。为什么会这样,有没有办法使它们相同?
【问题讨论】:
-
我认为 PKCS12 文件包含对称密钥;由于您使用的是 X509Certificate2.Export 的重载,它不接受 PKCS12 密钥的密码,因此它可能会代表您生成一些随机位。您是否尝试过使用接受密码字符串的导出重载之一?
标签: security cryptography x509certificate certificate x509certificate2