2012-06-25 87 views
7

我从MSDN复制粘贴此代码:SHA1(和全加密命名空间)在Visual Studio 2012缺少

using System.Security.Cryptography; 

byte[] buffer = enc.GetBytes(text); 
SHA1CryptoServiceProvider cryptoTransformSHA1 = 
      new SHA1CryptoServiceProvider(); 
string hash = BitConverter.ToString(
      cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", ""); 

return hash; 

但VS说,有没有这样的Cryptography命名空间,因而不存在SHA1CryptoServiceProvider类。

我在做什么错?

我在Windows 8 Release Preview上使用Visual Studio Professional 2012 RC和Dreamspark许可证。

+0

你可以给该代码的链接? – aliboy38

+0

它在那里。见MSDn http://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx –

+0

可能没有解释我自己,我的意思是VS说他找不到那个类也不命名空间 –

回答

5

我认为你要创建一个地铁应用程序? Metro风格的应用程序不支持System.Security.Cryptography命名空间。可以找到Metro应用程序支持的.NET API命名空间的完整列表here

UPDATE 6月29日

正如吉列尔莫指出虽然,有Windows.Security.Cryptograhy.Core命名空间,一个包含类HashAlgorithmProvider其中例如可以应用SHA1算法。

+2

这怎么可能?这是否意味着如果我想要一个Metro应用程序,我不能再使用SHA-1了? – sharptooth

5

答案就像Anders Gustafsson指出的那样,在地铁System.Security.Cryptography不支持。但你有Windows.Security.Cryptography

+0

是的,我看到了,但第一次看起来不够紧密。感谢您指出。我更新了我的答案,其中包含一些指向MSDN文档的链接以确保完整性 –

相关问题