HashAlgorithmProvider クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
暗号化ハッシュ プロバイダーを表します。 ハッシュの詳細については、「 MAC、ハッシュ、署名」を参照してください。
public ref class HashAlgorithmProvider sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HashAlgorithmProvider final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HashAlgorithmProvider
Public NotInheritable Class HashAlgorithmProvider
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
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;
}
}
}
注釈
HashAlgorithmProvider オブジェクトを作成するには、静的 OpenAlgorithm メソッドを呼び出し、次のいずれかのアルゴリズム名を指定します。
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
プロパティ
AlgorithmName |
オープン ハッシュ アルゴリズムの名前を取得します。 |
HashLength |
ハッシュの長さをバイト単位で取得します。 |
メソッド
CreateHash() |
再利用可能な CryptographicHash オブジェクトを 作成します。 |
HashData(IBuffer) |
バイナリ データをハッシュします。 |
OpenAlgorithm(String) |
HashAlgorithmProvider オブジェクトを作成し、指定したアルゴリズムを開いて使用します。 |