Visual c++ 如果可以';无法在Windows中获取私钥?
我很困惑。我的英语很差,但我尽量把问题说清楚。当浏览器连接到需要客户端证书来验证身份的https网站时,浏览器将向web服务器发送客户端证书。然后web服务器将使用证书加密某些数据并将其发送到浏览器。那么broswer应该有私钥来解密。但正如我所知,如果我安装了pfx格式的个人证书,我可以设置不能导出私钥,这意味着你无法获得私钥来使用它。那么,浏览器如何在没有私钥的情况下解密数据呢?“不可导出”并不意味着“不可用”。您可以使用CryptoAPI函数使用私钥进行签名和解密Visual c++ 如果可以';无法在Windows中获取私钥?,visual-c++,ssl,encryption,https,openssl,Visual C++,Ssl,Encryption,Https,Openssl,我很困惑。我的英语很差,但我尽量把问题说清楚。当浏览器连接到需要客户端证书来验证身份的https网站时,浏览器将向web服务器发送客户端证书。然后web服务器将使用证书加密某些数据并将其发送到浏览器。那么broswer应该有私钥来解密。但正如我所知,如果我安装了pfx格式的个人证书,我可以设置不能导出私钥,这意味着你无法获得私钥来使用它。那么,浏览器如何在没有私钥的情况下解密数据呢?“不可导出”并不意味着“不可用”。您可以使用CryptoAPI函数使用私钥进行签名和解密 在侧节点上,如果需要,可
在侧节点上,如果需要,可以导入PFX文件并将私钥设置为可导出 谢谢你的回答!我认为私钥应该设置为不可移植,以确保安全。你的意思是我们可以使用CryptoAPI在没有私钥的情况下解密数据吗?我搜索了一些信息,找到了一个叫做CSP的东西,它保存了私钥。所以,如果我们想要解密数据,我们只需要调用CSP提供的一些接口支持?例如加密解密消息(…)?这就是你的意思“可用”@lvshuschengyin没有私钥你无法解密数据。但由于私钥在导入后存在于Windows中,对CryptoAPI函数(如CryptoDecryptMessage)的调用将使用存储的私钥。“对CryptoAPI函数(如CryptoDecryptMessage)的调用将使用存储的私钥。”这意味着我们只调用CryptoAPI函数(如CryptoDecryptMessage),它会自动寻找私钥来解密数据吗?windows将安全地保存私钥,没有人可以获取它。如果这是对SSL中发生的情况的描述,那么它是不正确的。私钥不用于解密。这是通过协商的对称会话密钥完成的。私钥和证书仅用于身份验证目的。@EJP是的,我的意思是在身份验证握手中,客户端的证书私钥应用于解密服务器的随机数数据以进行身份验证。