gpt4 book ai didi

c# - 如何使用私钥获取证书的 base 64 编码值?

转载 作者:太空狗 更新时间:2023-10-29 22:33:47 25 4
gpt4 key购买 nike

跟进 previous question ,我有一些代码需要使用私钥获取 X509 证书。如答案中所述,在生产中,这将使用 X509Store 发生。

对此进行单元测试的最佳方法是什么?我想使用与生产中不同的证书进行开发和测试,因此我可以创建一个 CertificateRepository 接口(interface)来提供不同的实现。

对于测试/开发实现,最好只使用证书的 base64 编码字符串,并以这种方式创建一个证书实例,使用虚拟密码和专用测试/开发证书。但是到目前为止,我一直无法弄清楚如何使用私钥将证书编码为 base64 字符串。每次我尝试将证书从 MMC 导出为 base-64 时,它只对公钥进行编码。

最佳答案

我无法弄清楚如何使用 mmc 执行此操作。但是我确实想出了如何在代码中做到这一点:

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Find(X509FindType.FindByThumbprint,
"BLABLABLA", false)[0]; // doesn't matter how you get the cert
var exported = certificate.Export(X509ContentType.Pfx, "the password");
var base64 = Convert.ToBase64String(exported);
store.Close();

只要您从 x 509 存储中获取的证书具有私钥,它就会在导出的字节数组中结束,然后您可以将其转换为 base64 字符串。

关于c# - 如何使用私钥获取证书的 base 64 编码值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com