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 アプリケーションを作成しようとしていると思いますか? System.Security.CryptographyMetro スタイルのアプリケーションは名前空間をサポートしていません。Metro アプリケーションでサポートされている .NET API 名前空間の完全なリストは、ここにあります。

6月29日更新

ただし、Guillermo が指摘しているように、たとえば SHA1 アルゴリズムを適用できるHashAlgorithmProviderクラスを含むWindows.Security.Cryptograhy.Core名前空間があります。

于 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 に答える