由于 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 文件中,您可以计算出相同的哈希码。一旦您拥有两个哈希码,您就可以比较它们。
不要将私钥放在 cer 文件中,只保留公钥和私钥的哈希值。
关于c# - 在 C# 中验证证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005325/