如何将 AES 256 密码与 HttpWebRequest 结合使用
我的 .net 2.0 应用程序使用 AES 128 密码而不是 256 来对 https 站点进行 POST 请求,这导致后者失败。 如何对 HttpWebRequest 使用 AES 256 密码?
My .net 2.0 application uses AES 128 cipher instead of 256 for POST request to the https site, which cause the latter fail.
How to use AES 256 cipher for HttpWebRequest?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您访问安全 URL (https),
HttpWebRequest
会负责 SSL/TLS 协商。为会话协商的密码套件取决于客户端和服务器的能力。简而言之,它发生在以下步骤:因此,要回答您的问题,您需要确保您的客户端和服务器都具有 AES256 功能。
客户端
由于您使用的
HttpWebRequest
在内部使用 Windows API,因此您将受到 Windows API 的支配。据我所知,Windows XP 和 Windows Server 2003 不支持 TLS 1.0、TLS 1.2、AES 256、SHA 256、ECC 等新功能。为此,您的客户端必须在 Windows Vista、Windows 7 或 Windows 上运行2008.服务器端
由于没有迹象表明服务器正在使用,我无法对此发表任何评论。如果是IIS,上面的文字仍然适用。不过您需要启用 IIS 中的某些位。请参阅这篇优秀文章< /a> 寻求帮助。
提示
使用网络监视器查看幕后发生的情况。您可以使用 Wireshark 或 Microsoft 网络监视器 为此。
HttpWebRequest
takes care of SSL/TLS negotiation if you access a secure url (https). The cipher suite negotiated for the session depends on the capability of both client and server. In simple words, it happens in below steps:So to answer your question, you need to make sure that both your client and server has AES256 capability.
Client Side
Since you are using
HttpWebRequest
which internally uses Windows APIs, you are on the mercy of Windows APIs. As far as I know, Windows XP and Windows Server 2003 don't support new things like TLS 1.0, TLS 1.2, AES 256, SHA 256, ECC etc. For that, your client must be running on Windows Vista, Windows 7 or Windows 2008.Server Side
Since there is no indication of server in use, I cannot comment anything on it. If it is IIS, above text still applies. Though you will need to enable certain bits in IIS. See this excellent article for help.
Tip
Use a network monitor to see what is happening behind the scenes. You can use Wireshark or Microsoft Network Monitor for this.