7

我从 MSDN 复制粘贴了这段代码:

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 上使用带有 Dreamspark 许可证的 Visual Studio Professional 2012 RC。

4

4 回答 4

5

我认为您正在尝试创建 Metro 应用程序?Metro 风格的应用程序不支持System.Security.Cryptography命名空间。可在此处找到 Metro 应用程序支持的 .NET API 名称空间的完整列表。

更新 6 月 29 日

正如 Guillermo 所指出的,有一个Windows.Security.Cryptograhy.Core命名空间,其中包含一个HashAlgorithmProvider类,例如可以应用 SHA1 算法。

于 2012-06-25T11:24:23.630 回答
5

答案是,就像 Anders Gustafsson 指出的那样,在 MetroSystem.Security.Cryptography中不受支持。但是你有Windows.Security.Cryptography

于 2012-06-28T21:48:46.177 回答
1

尝试添加System.Security到项目的引用中。

您的错误似乎是由缺少参考引起的。

http://msdn.microsoft.com/en-us/library/wkze6zky(v=vs.110).aspx

于 2012-06-25T11:06:09.547 回答
0

您的代码需要一个类。看到这个:http: //msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha1%28v=vs.110%29

于 2012-06-25T10:16:18.447 回答