gpt4 book ai didi

c# - X509Certificate2 构造函数中的 "The specified network password is not correct"异常

转载 作者:行者123 更新时间:2023-12-04 21:44:13 24 4
gpt4 key购买 nike

我有一个控制台应用程序,它从字节数组加载 X509 证书,如下所示:

var cert = new X509Certificate2(certificateContent,      // byte[]
password, // string
X509KeyStorageFlags.PersistKeySet);
certificateContentbyte[]表示 pfx 文件的内容。此代码适用于我测试过的许多证书。不过,我正在测试一个证书,这会导致此行抛出 CryptographicException带有消息“指定的网络密码不正确。”,即使提供的密码正确。

奇怪的是,我可以在 LinqPad 中使用相同的代码从具有相同密码的相同 pfx 文件创建证书,并且它工作正常。

我已经在调试器的控制台应用程序中检查了调用站点,并验证了正确的值被传入。

什么可能导致此构造函数在控制台应用程序中抛出此异常,但不在使用相同数据的 LinqPad 中抛出此异常,并且在其他证书的两个地方都能正常工作?

更多详情

证书以 Base64 格式存储在数据库中。控制台应用程序从数据库读取证书,将其从 Base64 转换为字节 [],然后尝试创建 X509Certificate2对象如上。

我一直在测试三个证书:
  • 我雇主的 CA 提供的我的个人客户端身份验证证书。
  • 由同事使用他自己的自签名 CA 创建的测试证书。
  • 我自己使用自签名 CA 创建的测试证书。

  • 证书 1 和 2 在控制台应用程序和 LinqPad 中均按预期工作。

    证书 3 在 LinqPad 中加载良好,但如果我尝试在控制台应用程序中使用它,则会生成上述错误。

    证书 2 和 3 之间有两个显着差异。
  • Cert2 于 2016 年到期,Cert3 于 2039 年到期
  • 与 cert2 关联的私钥是 2048 位。 Cert3 是 1024 位。

  • 这些差异中的任何一个是否会导致“指定的网络密码不正确”错误?为什么所有 3 个证书在 LinqPad 中都能正常工作,但只有 1 个在控制台应用程序中抛出错误?

    最佳答案

    希望这会帮助某人:

    User "S C"指出 Windows XP 和 Windows Server 2003 上的证书密码的以下要求。

    0 < password.Length < 32

    我看到过关于是否允许使用 32 的相互矛盾的报告。我可以确认我使用的是 32 个字符的密码(MD5 哈希),并将其截断为 30 个字符解决了该问题。

    关于c# - X509Certificate2 构造函数中的 "The specified network password is not correct"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176067/

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