HashAlgorithmProvider Class

暗号ハッシュ プロバイダーを表します。 ハッシュの詳細については、「MAC、ハッシュ、および署名」を参照してください。

構文


var hashAlgorithmProvider = Windows.Security.Cryptography.Core.HashAlgorithmProvider;

属性

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

メンバー

HashAlgorithmProviderクラス には次の種類のメンバーがあります。

メソッド

The HashAlgorithmProvider クラス には次のメソッドがあります。 With C#、Visual Basic、および C++ では、以下からもメソッドが継承されます。Object クラス.

メソッド説明
CreateHash Creates a reusable CryptographicHash object.
HashData Hashes binary data.
OpenAlgorithm Creates a HashAlgorithmProvider object and opens the specified algorithm for use.

 

プロパティ

HashAlgorithmProviderクラス には次のプロパティがあります。

プロパティアクセスの種類説明

AlgorithmName

読み取り専用Gets the name of the open hash algorithm.

HashLength

読み取り専用Gets the length, in bytes, of the hash.

 

解説

HashAlgorithmProvider オブジェクトは、静的な OpenAlgorithm メソッドを呼び出し、次のアルゴリズム名のいずれかを指定して作成します。

  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512


using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams;

namespace SampleHashAlgorithmProvider
{

    sealed partial class HashAlgProviderApp : Application
    {
        public HashAlgProviderApp()
        {
            // Initialize the application.
            this.InitializeComponent();

            // Hash a message.
            String strAlgName = HashAlgorithmNames.Sha512;
            String strMsg = "This is a message to be hashed.";
            String strEncodedHash = this.SampleHashMsg(strAlgName, strMsg);
        }

        public String SampleHashMsg(String strAlgName, String strMsg)
        {
            // Convert the message string to binary data.
            IBuffer buffUtf8Msg = CryptographicBuffer.ConvertStringToBinary(strMsg, BinaryStringEncoding.Utf8);

            // Create a HashAlgorithmProvider object.
            HashAlgorithmProvider objAlgProv = HashAlgorithmProvider.OpenAlgorithm(strAlgName);

            // Demonstrate how to retrieve the name of the hashing algorithm.
            String strAlgNameUsed = objAlgProv.AlgorithmName;

            // Hash the message.
            IBuffer buffHash = objAlgProv.HashData(buffUtf8Msg);

            // Verify that the hash length equals the length specified for the algorithm.
            if (buffHash.Length != objAlgProv.HashLength)
            {
                throw new Exception("There was an error creating the hash");
            }

            // Convert the hash to a string (for display).
            String strHashBase64 = CryptographicBuffer.EncodeToBase64String(buffHash);

            // Return the encoded string
            return strHashBase64;
        }
    }
}


要件

最小限サポートされるクライアント

Windows 8 [Windows ストア アプリ, デスクトップ アプリ]

最小限サポートされるサーバー

Windows Server 2012 [Windows ストア アプリ, デスクトップ アプリ]

名前空間

Windows.Security.Cryptography.Core
Windows::Security::Cryptography::Core [C++]

メタデータ

Windows.winmd

参照

ハッシュとデジタル署名

 

 

表示:
© 2015 Microsoft