ASP.NET加密SHA-1到SHA-2

时间:2017-12-03 11:56:17

标签: c# asp.net cryptography sha2

目前,我的源代码正在调用使用SHA-1加密技术的外部Web服务,我现在通过以下方式调用这些外部WS

using System.Security.Cryptography.X509Certificates;
X509Certificate2 x509Certificate2 = new X509Certificate2("client.p12", "password"); 

每次调用WS时我都必须按以下方式传递变量:

 WebserviceName.Timeout = 20000000;
 WebserviceName.PreAuthenticate = true;
 WebserviceName.ClientCertificates.Add(x509Certificate2);

现在,我想知道.NET framework 4.0是否支持SHA-2。

请告知X509Certificate2是否可用于SHA-2和/或我可用于此升级的任何其他资源。

谢谢。

1 个答案:

答案 0 :(得分:1)

X.509证书本身 not 指定用于签名生成/验证的算法。 RSA公钥可用于任何基于RSA的算法。

然而,证书可以签名使用SHA-1的算法(通常是PKCS#1 v1.5签名; PSS签名通常使用SHA-2但两者都兼容SHA-1和SHA -2)。因此,如果SHA-1不再被认为足够安全,则必须确保证书本身不被视为无效。

很长一段时间以来,.NET一直支持SHA-2(SHA256甚至在1.1中),但 test 你的配置永远不会受到伤害。