c# - 在 C# 中验证证书

标签 c# visual-studio ssl windows-8

由于 Windows 8 应用程序的限制,我无法使用 System.Security 库。我需要使用 Windows.Security.Cryptography,并且需要验证证书(.cer 文件)和 key (.key 文件)是否有效。

我已经在读取文件并创建证书的新实例:

Windows.Security.Cryptography.Certificates.Certificate objCert = new Windows.Security.Cryptography.Certificates.Certificate(stream);

stream 作为 IBuffer 的 .cer 文件。

我可以提取 .cer 文件的一些属性,如过期时间或颁发者,但我无法获取用于签名的 key ,并将其与 .key 文件中包含的 key 进行比较。

最佳答案

您不应该比较这些键。您通常比较他们的哈希码。之所以如此,是因为您没有泄露私钥。

证书具有私钥的哈希码。从 key 文件中,您可以计算出相同的哈希码。一旦您拥有两个哈希码,您就可以比较它们。

GetCertHashString()

不要将私钥放在 cer 文件中,只保留公钥和私钥的哈希值。

另请参阅此处:How to validate X509 certificate?

关于c# - 在 C# 中验证证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005325/

相关文章:

c++ - 让 .natvis 将 SmartPointer<T> 显示为 static_cast<T*>(void*)

javascript - 在 C# 中清除响应后回发后执行 Javascript

c++ - Visual Studio C++ 预处理器定义失败,路径从 "u"开始

c# - 是否可以强制 Windows Phone 更新您的应用程序?

c# - 在 Visual Studio 中制作 .NET 库

ssl - 使用 SSL 的 Google App Engine 自定义域出现 404 错误

tomcat - 如何为 SAML SP 元数据使用 Tomcat SSL 证书

python - 验证证书的指纹

c# - Autofac - 解决多线程环境中的依赖关系

c# - 如何防止用户在文本框中输入特殊字符?