复制/粘贴证书指纹字符串时,为什么等同性检查失败?

时间:2014-09-20 13:37:26

标签: c# string equality mmc

我有两个证书指纹,从Microsoft管理控制台检索。

当我将值复制/粘贴到我的程序中,然后手动键入相同的值以执行相等性检查时,它们会失败。

有没有人知道为什么,当粘贴字符串值时,它不会通过相等检查,但是当手动输入它时呢?据我所知,它们是相同的值,所以不应该都是真的吗?

public void DoSomething()
{
    const string thumbprint1  = "‎1F279488F131074FC7B34B9AF6E6B087678404F2";
    const string thumbprint2  = "1F279488F131074FC7B34B9AF6E6B087678404F2";

    Debug.WriteLine("thumbprint1 = {0}\n", ("1F279488F131074FC7B34B9AF6E6B087678404F2" == thumbprint1));
    Debug.WriteLine("thumbprint2 = {0}\n", ("1F279488F131074FC7B34B9AF6E6B087678404F2" == thumbprint2));
}

以下是Visual Studio中比较结果的图像:

enter image description here

1 个答案:

答案 0 :(得分:6)

如果您从MMC复制并粘贴了指纹,您可能会发现其中一个指纹在指纹的开头有一个特殊的隐藏字符。

按指纹前面的删除删除隐藏的字符,这将解决问题。