C# Visual Studio 2012中缺少SHA1(以及整个加密命名空间)
我从MSDN复制粘贴此代码:C# Visual Studio 2012中缺少SHA1(以及整个加密命名空间),c#,visual-studio-2012,C#,Visual Studio 2012,我从MSDN复制粘贴此代码: using System.Security.Cryptography; byte[] buffer = enc.GetBytes(text); SHA1CryptoServiceProvider cryptoTransformSHA1 = new SHA1CryptoServiceProvider(); string hash = BitConverter.ToString( cryptoTransformSHA1.
using System.Security.Cryptography;
byte[] buffer = enc.GetBytes(text);
SHA1CryptoServiceProvider cryptoTransformSHA1 =
new SHA1CryptoServiceProvider();
string hash = BitConverter.ToString(
cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", "");
return hash;
但是VS说没有这样的加密
名称空间,因此没有SHA1CryptoServiceProvider
类
我做错了什么
我正在Windows 8版本预览上使用Visual Studio Professional 2012 RC和Dreamspark许可证。您的代码需要一个类。请参见:尝试将
System.Security
添加到项目的引用中
您的错误似乎是由于缺少此引用引起的
我认为您正在尝试创建Metro应用程序?Metro风格的应用程序不支持
System.Security.Cryptography
命名空间。可以找到Metro应用程序支持的.NET API命名空间的完整列表
6月29日更新
正如Guillermo所指出的,有一个名称空间,它包含一个类,例如可以应用SHA1算法。答案是,正如Anders Gustafsson所指出的,在Metro
系统中,不支持安全性和加密。但是你有Windows.Security.Cryptography
。你能给出那段代码的链接吗?它就在那里。看,MSDn可能没有解释我自己,我的意思是VS说他找不到那个类或名称空间你只是缺少了对System.Security的引用吗?只是编辑来说明实际的问题还是同样的问题,加密
名称空间丢失了这怎么可能?这是否意味着如果我想要一个Metro应用程序,我就不能再使用SHA-1了?是的,我看到了,但第一次看得不够仔细。谢谢你指出这一点。为了完整起见,我更新了我的答案,添加了一些MSDN文档的链接。