如何在HttpWebRequest中使用AES 256密码

时间:2011-03-12 11:43:10

标签: c# httpwebrequest aes

我的.net 2.0应用程序使用AES 128密码而不是256来对https站点发出POST请求,导致后者失败。 如何使用AES 256密码进行HttpWebRequest?

1 个答案:

答案 0 :(得分:5)

如果您访问安全网址(https),

HttpWebRequest会处理SSL / TLS协商。为会话协商的密码套件取决于客户端和服务器的能力。简单来说,它发生在以下步骤中:

  • 客户端连接到服务器。
  • 客户端问好,随之而来,它提供了一套加密算法(例如[RSA + AES128 + SHA1],[RSA + AES256 + SHA1],...)
  • 服务器选择它支持的最强大的“算法套件”,并通知客户端我们将使用此套件进行当前会话。

因此,要回答您的问题,您需要确保两者您的客户端和服务器都具有AES256功能。

客户端

由于您使用的是内部使用Windows API的HttpWebRequest,因此您将受到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中启用某些位。请参阅this excellent article以获取帮助。

提示

使用网络监视器查看幕后发生的情况。您可以使用WiresharkMicrosoft Network Monitor进行此操作。