SHA256 Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Beräknar SHA256 hashen för indata.
public ref class SHA256 abstract : System::Security::Cryptography::HashAlgorithm
public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm
type SHA256 = class
inherit HashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type SHA256 = class
inherit HashAlgorithm
Public MustInherit Class SHA256
Inherits HashAlgorithm
- Arv
- Härledda
- Attribut
Exempel
I följande exempel beräknas SHA-256-hashen för alla filer i en katalog.
using System;
using System.IO;
using System.Security.Cryptography;
public class HashDirectory
{
public static void Main(string[] args)
{
if (args.Length < 1)
{
Console.WriteLine("No directory selected.");
return;
}
string directory = args[0];
if (Directory.Exists(directory))
{
// Create a DirectoryInfo object representing the specified directory.
var dir = new DirectoryInfo(directory);
// Get the FileInfo objects for every file in the directory.
FileInfo[] files = dir.GetFiles();
// Initialize a SHA256 hash object.
using (SHA256 mySHA256 = SHA256.Create())
{
// Compute and print the hash values for each file in directory.
foreach (FileInfo fInfo in files)
{
using (FileStream fileStream = fInfo.Open(FileMode.Open))
{
try
{
// Create a fileStream for the file.
// Be sure it's positioned to the beginning of the stream.
fileStream.Position = 0;
// Compute the hash of the fileStream.
byte[] hashValue = mySHA256.ComputeHash(fileStream);
// Write the name and hash value of the file to the console.
Console.Write($"{fInfo.Name}: ");
PrintByteArray(hashValue);
}
catch (IOException e)
{
Console.WriteLine($"I/O Exception: {e.Message}");
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine($"Access Exception: {e.Message}");
}
}
}
}
}
else
{
Console.WriteLine("The directory specified could not be found.");
}
}
// Display the byte array in a readable format.
public static void PrintByteArray(byte[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.Write($"{array[i]:X2}");
if ((i % 4) == 3) Console.Write(" ");
}
Console.WriteLine();
}
}
Imports System.IO
Imports System.Security.Cryptography
Public Module HashDirectory
Public Sub Main(ByVal args() As String)
If args.Length < 1 Then
Console.WriteLine("No directory selected")
Return
End If
Dim targetDirectory As String = args(0)
If Directory.Exists(targetDirectory) Then
' Create a DirectoryInfo object representing the specified directory.
Dim dir As New DirectoryInfo(targetDirectory)
' Get the FileInfo objects for every file in the directory.
Dim files As FileInfo() = dir.GetFiles()
' Initialize a SHA256 hash object.
Using mySHA256 As SHA256 = SHA256.Create()
' Compute and print the hash values for each file in directory.
For Each fInfo As FileInfo In files
Try
' Create a fileStream for the file.
Dim fileStream = fInfo.Open(FileMode.Open)
' Be sure it's positioned to the beginning of the stream.
fileStream.Position = 0
' Compute the hash of the fileStream.
Dim hashValue() As Byte = mySHA256.ComputeHash(fileStream)
' Write the name of the file to the Console.
Console.Write(fInfo.Name + ": ")
' Write the hash value to the Console.
PrintByteArray(hashValue)
' Close the file.
fileStream.Close()
Catch e As IOException
Console.WriteLine($"I/O Exception: {e.Message}")
Catch e As UnauthorizedAccessException
Console.WriteLine($"Access Exception: {e.Message}")
End Try
Next
End Using
Else
Console.WriteLine("The directory specified could not be found.")
End If
End Sub
' Print the byte array in a readable format.
Public Sub PrintByteArray(array() As Byte)
For i As Integer = 0 To array.Length - 1
Console.Write($"{array(i):X2}")
If i Mod 4 = 3 Then
Console.Write(" ")
End If
Next
Console.WriteLine()
End Sub
End Module
Kommentarer
Hashen används som ett unikt värde med fast storlek som representerar en stor mängd data. Hashvärden för två datamängder ska matcha om och endast om motsvarande data också matchar. Små ändringar i data resulterar i stora oförutsägbara ändringar i hashen.
Hash-storleken för algoritmen SHA256 är 256 bitar.
Det här är en abstrakt klass.
Konstruktorer
| Name | Description |
|---|---|
| SHA256() |
Initierar en ny instans av SHA256. |
Fält
| Name | Description |
|---|---|
| HashSizeInBits |
Hashstorleken som produceras av SHA-256-algoritmen, i bitar. |
| HashSizeInBytes |
Hashstorleken som produceras av SHA-256-algoritmen i byte. |
| HashSizeValue |
Representerar storleken, i bitar, på den beräknade hashkoden. (Ärvd från HashAlgorithm) |
| HashValue |
Representerar värdet för den beräknade hashkoden. (Ärvd från HashAlgorithm) |
| State |
Representerar tillståndet för hash-beräkningen. (Ärvd från HashAlgorithm) |
Egenskaper
| Name | Description |
|---|---|
| CanReuseTransform |
Hämtar ett värde som anger om den aktuella transformeringen kan återanvändas. (Ärvd från HashAlgorithm) |
| CanTransformMultipleBlocks |
När det åsidosättas i en härledd klass får du ett värde som anger om flera block kan transformeras. (Ärvd från HashAlgorithm) |
| Hash |
Hämtar värdet för den beräknade hashkoden. (Ärvd från HashAlgorithm) |
| HashSize |
Hämtar storleken, i bitar, på den beräknade hashkoden. (Ärvd från HashAlgorithm) |
| InputBlockSize |
När det åsidosättas i en härledd klass hämtar indatablockstorleken. (Ärvd från HashAlgorithm) |
| OutputBlockSize |
När det åsidosättas i en härledd klass hämtar du utdatablockets storlek. (Ärvd från HashAlgorithm) |
Metoder
| Name | Description |
|---|---|
| Clear() |
Släpper alla resurser som används av HashAlgorithm klassen. (Ärvd från HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Beräknar hash-värdet för den angivna regionen för den angivna bytematrisen. (Ärvd från HashAlgorithm) |
| ComputeHash(Byte[]) |
Beräknar hash-värdet för den angivna bytematrisen. (Ärvd från HashAlgorithm) |
| ComputeHash(Stream) |
Beräknar hash-värdet för det angivna Stream objektet. (Ärvd från HashAlgorithm) |
| ComputeHashAsync(Stream, CancellationToken) |
Beräknar hash-värdet för det angivna Stream objektet asynkront. (Ärvd från HashAlgorithm) |
| Create() |
Skapar en instans av standardimplementeringen av SHA256. |
| Create(String) |
Föråldrad.
Skapar en instans av en angiven implementering av SHA256. |
| Dispose() |
Släpper alla resurser som används av den aktuella instansen HashAlgorithm av klassen. (Ärvd från HashAlgorithm) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av HashAlgorithm och släpper eventuellt de hanterade resurserna. (Ärvd från HashAlgorithm) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| HashCore(Byte[], Int32, Int32) |
När de åsidosätts i en härledd klass dirigeras data som skrivits till objektet till hash-algoritmen för att beräkna hashen. (Ärvd från HashAlgorithm) |
| HashCore(ReadOnlySpan<Byte>) |
Dirigerar data som skrivs till objektet till hash-algoritmen för att beräkna hashen. (Ärvd från HashAlgorithm) |
| HashData(Byte[]) |
Beräknar hashen av data med hjälp av SHA-256-algoritmen. |
| HashData(ReadOnlySpan<Byte>, Span<Byte>) |
Beräknar hashen av data med hjälp av SHA-256-algoritmen. |
| HashData(ReadOnlySpan<Byte>) |
Beräknar hashen av data med hjälp av SHA-256-algoritmen. |
| HashData(Stream, Span<Byte>) |
Beräknar hashen för en ström med sha-256-algoritmen. |
| HashData(Stream) |
Beräknar hashen för en ström med sha-256-algoritmen. |
| HashDataAsync(Stream, CancellationToken) |
Beräknar asynkront hashen för en ström med sha-256-algoritmen. |
| HashDataAsync(Stream, Memory<Byte>, CancellationToken) |
Beräknar asynkront hashen för en ström med sha-256-algoritmen. |
| HashFinal() |
När den åsidosättas i en härledd klass slutför du hash-beräkningen efter att de senaste data har bearbetats av den kryptografiska hash-algoritmen. (Ärvd från HashAlgorithm) |
| Initialize() |
Återställer hash-algoritmen till dess ursprungliga tillstånd. (Ärvd från HashAlgorithm) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Beräknar hash-värdet för den angivna regionen för indatabytematrisen och kopierar den angivna regionen för indatabytematrisen till den angivna regionen för utdatabytematrisen. (Ärvd från HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
Beräknar hash-värdet för den angivna regionen för den angivna bytematrisen. (Ärvd från HashAlgorithm) |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Försöker beräkna hash-värdet för den angivna bytematrisen. (Ärvd från HashAlgorithm) |
| TryHashData(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Försöker beräkna hashen av data med hjälp av SHA-256-algoritmen. |
| TryHashFinal(Span<Byte>, Int32) |
Försök att slutföra hash-beräkningen när de senaste data bearbetas av hash-algoritmen. (Ärvd från HashAlgorithm) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Släpper de ohanterade resurser som används av HashAlgorithm och släpper eventuellt de hanterade resurserna. (Ärvd från HashAlgorithm) |