3
下面是測試:爲什麼多次調用X509Certificate2.Export(Pkcs12)會返回不同的結果?
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
叫,該值始終是相同的,所以版畫控制檯「真」。但是當使用Pkcs12選項時,該值總是非常不同。爲什麼會這樣,並且有辦法讓它們變得一樣嗎?
我認爲PKCS12文件包含一個對稱密鑰;由於您使用的X509Certificate2.Export的重載不接受PKCS12密鑰的密碼,因此它可能會以您的名義生成一些隨機位。您是否嘗試過使用接受密碼字符串的導出重載之一? – beefarino