Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

CryptographicHash Class

Definition

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents a reusable hashing object and contains the result of a hashing operation.

public ref class CryptographicHash sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class CryptographicHash final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class CryptographicHash
Public NotInheritable Class CryptographicHash
Inheritance
Object Platform::Object IInspectable CryptographicHash
Attributes

Windows requirements

Requirements Description
Device family
Windows 10 (introduced in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)

Examples

public void SampleReusableHash()
{
 // Create a string that contains the name of the hashing algorithm to use.
 String strAlgName = HashAlgorithmNames.Sha512;

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

 // Create a CryptographicHash object. This object can be reused to continually
 // hash new messages.
 CryptographicHash objHash = objAlgProv.CreateHash();

 // Hash message 1.
 String strMsg1 = "This is message 1.";
 IBuffer buffMsg1 = CryptographicBuffer.ConvertStringToBinary(strMsg1, BinaryStringEncoding.Utf16BE);
 objHash.Append(buffMsg1);
 IBuffer buffHash1 = objHash.GetValueAndReset();

 // Hash message 2.
 String strMsg2 = "This is message 2.";
 IBuffer buffMsg2 = CryptographicBuffer.ConvertStringToBinary(strMsg2, BinaryStringEncoding.Utf16BE);
 objHash.Append(buffMsg2);
 IBuffer buffHash2 = objHash.GetValueAndReset();

 // Hash message 3.
 String strMsg3 = "This is message 3.";
 IBuffer buffMsg3 = CryptographicBuffer.ConvertStringToBinary(strMsg3, BinaryStringEncoding.Utf16BE);
 objHash.Append(buffMsg3);
 IBuffer buffHash3 = objHash.GetValueAndReset();

 // Convert the hashes to string values (for display);
 String strHash1 = CryptographicBuffer.EncodeToBase64String(buffHash1);
 String strHash2 = CryptographicBuffer.EncodeToBase64String(buffHash2);
 String strHash3 = CryptographicBuffer.EncodeToBase64String(buffHash3);
}

Remarks

Call the HashAlgorithmProvider.CreateHash or MacAlgorithmProvider.CreateHash method to create a CryptographicHash object. You can open a hash algorithm provider, by name, for any of the following algorithm names:

  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512

Methods

Name Description
Append(IBuffer)

Appends a binary encoded string to the data stored in the CryptographicHash object.

GetValueAndReset()

Gets hashed data from the CryptographicHash object and resets the object.

Applies to

See also


Feedback

Was this page helpful?