HashAlgorithmProvider Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un fournisseur de hachage de chiffrement. Pour plus d’informations sur les hachages, consultez MaCs, hachages et signatures.
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
- Héritage
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
Exemples
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;
}
}
}
Remarques
Vous créez un objet HashAlgorithmProvider en appelant la méthode OpenAlgorithm statique et en spécifiant l’un des noms d’algorithmes suivants :
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
Propriétés
AlgorithmName |
Obtient le nom de l’algorithme de hachage ouvert. |
HashLength |
Obtient la longueur, en octets, du hachage. |
Méthodes
CreateHash() |
Crée un objet CryptographicHash réutilisable. |
HashData(IBuffer) |
Hache les données binaires. |
OpenAlgorithm(String) |
Crée un objet HashAlgorithmProvider et ouvre l’algorithme spécifié à utiliser. |