SHA256 Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
SHA256 Oblicza skrót dla danych wejściowych.
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
- Dziedziczenie
- Pochodne
- Atrybuty
Przykłady
Poniższy przykład oblicza skrót SHA-256 dla wszystkich plików w katalogu.
using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;
// Print the byte array in a readable format.
void PrintByteArray( array<Byte>^array )
{
int i;
for ( i = 0; i < array->Length; i++ )
{
Console::Write( String::Format( "{0:X2}", array[ i ] ) );
if ( (i % 4) == 3 )
Console::Write( " " );
}
Console::WriteLine();
}
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
if ( args->Length < 2 )
{
Console::WriteLine( "Usage: hashdir <directory>" );
return 0;
}
try
{
// Create a DirectoryInfo object representing the specified directory.
DirectoryInfo^ dir = gcnew DirectoryInfo( args[ 1 ] );
// Get the FileInfo objects for every file in the directory.
array<FileInfo^>^files = dir->GetFiles();
// Initialize a SHA256 hash object.
SHA256 ^ mySHA256 = SHA256Managed::Create();
array<Byte>^hashValue;
// Compute and print the hash values for each file in directory.
System::Collections::IEnumerator^ myEnum = files->GetEnumerator();
while ( myEnum->MoveNext() )
{
FileInfo^ fInfo = safe_cast<FileInfo^>(myEnum->Current);
// Create a fileStream for the file.
FileStream^ fileStream = fInfo->Open( FileMode::Open );
// Compute the hash of the fileStream.
hashValue = mySHA256->ComputeHash( fileStream );
// Write the name of the file to the Console.
Console::Write( "{0}: ", fInfo->Name );
// Write the hash value to the Console.
PrintByteArray( hashValue );
// Close the file.
fileStream->Close();
}
return 0;
}
catch ( DirectoryNotFoundException^ )
{
Console::WriteLine( "Error: The directory specified could not be found." );
}
catch ( IOException^ )
{
Console::WriteLine( "Error: A file in the directory could not be accessed." );
}
}
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
Uwagi
Skrót jest używany jako unikatowa wartość o stałym rozmiarze reprezentującym dużą ilość danych. Skróty dwóch zestawów danych powinny być zgodne tylko wtedy, gdy odpowiednie dane również są zgodne. Niewielkie zmiany w danych powodują duże nieprzewidywalne zmiany skrótu.
Rozmiar skrótu dla algorytmu SHA256 to 256 bitów.
Jest to abstrakcyjna klasa.
Konstruktory
SHA256() |
Inicjuje nowe wystąpienie klasy SHA256. |
Pola
HashSizeInBits |
Rozmiar skrótu generowany przez algorytm SHA256 w bitach. |
HashSizeInBytes |
Rozmiar skrótu generowany przez algorytm SHA256 w bajtach. |
HashSizeValue |
Reprezentuje rozmiar w bitach obliczonego kodu skrótu. (Odziedziczone po HashAlgorithm) |
HashValue |
Reprezentuje wartość obliczonego kodu skrótu. (Odziedziczone po HashAlgorithm) |
State |
Reprezentuje stan obliczeń skrótu. (Odziedziczone po HashAlgorithm) |
Właściwości
CanReuseTransform |
Pobiera wartość wskazującą, czy można ponownie użyć bieżącej transformacji. (Odziedziczone po HashAlgorithm) |
CanTransformMultipleBlocks |
Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy można przekształcić wiele bloków. (Odziedziczone po HashAlgorithm) |
Hash |
Pobiera wartość obliczonego kodu skrótu. (Odziedziczone po HashAlgorithm) |
HashSize |
Pobiera rozmiar w bitach obliczonego kodu skrótu. (Odziedziczone po HashAlgorithm) |
InputBlockSize |
Po przesłonięciu w klasie pochodnej pobiera rozmiar bloku wejściowego. (Odziedziczone po HashAlgorithm) |
OutputBlockSize |
Po zastąpieniu w klasie pochodnej pobiera rozmiar bloku wyjściowego. (Odziedziczone po HashAlgorithm) |
Metody
Clear() |
Zwalnia wszystkie zasoby używane przez klasę HashAlgorithm . (Odziedziczone po HashAlgorithm) |
ComputeHash(Byte[]) |
Oblicza wartość skrótu dla określonej tablicy bajtów. (Odziedziczone po HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów. (Odziedziczone po HashAlgorithm) |
ComputeHash(Stream) |
Oblicza wartość skrótu dla określonego Stream obiektu. (Odziedziczone po HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Asynchronicznie oblicza wartość skrótu dla określonego Stream obiektu. (Odziedziczone po HashAlgorithm) |
Create() |
Tworzy wystąpienie domyślnej implementacji elementu SHA256. |
Create(String) |
Przestarzałe.
Tworzy wystąpienie określonej implementacji elementu SHA256. |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy HashAlgorithm. (Odziedziczone po HashAlgorithm) |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po HashAlgorithm) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
HashCore(Byte[], Int32, Int32) |
Po przesłonięciu w klasie pochodnej dane są przesyłane do obiektu do algorytmu skrótu do obliczania skrótu. (Odziedziczone po HashAlgorithm) |
HashCore(ReadOnlySpan<Byte>) |
Kieruje dane zapisywane do obiektu w algorytmie skrótu na potrzeby obliczania skrótu. (Odziedziczone po HashAlgorithm) |
HashData(Byte[]) |
Oblicza skrót danych przy użyciu algorytmu SHA256. |
HashData(ReadOnlySpan<Byte>) |
Oblicza skrót danych przy użyciu algorytmu SHA256. |
HashData(ReadOnlySpan<Byte>, Span<Byte>) |
Oblicza skrót danych przy użyciu algorytmu SHA256. |
HashData(Stream) |
Oblicza skrót strumienia przy użyciu algorytmu SHA256. |
HashData(Stream, Span<Byte>) |
Oblicza skrót strumienia przy użyciu algorytmu SHA256. |
HashDataAsync(Stream, CancellationToken) |
Asynchronicznie oblicza skrót strumienia przy użyciu algorytmu SHA256. |
HashDataAsync(Stream, Memory<Byte>, CancellationToken) |
Asynchronicznie oblicza skrót strumienia przy użyciu algorytmu SHA256. |
HashFinal() |
Po zastąpieniu w klasie pochodnej finalizuje obliczenia skrótu po przetworzeniu ostatnich danych przez algorytm skrótu kryptograficznego. (Odziedziczone po HashAlgorithm) |
Initialize() |
Resetuje algorytm skrótu do stanu początkowego. (Odziedziczone po HashAlgorithm) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Oblicza wartość skrótu dla określonego regionu tablicy bajtów wejściowych i kopiuje określony region tablicy bajtów wejściowych do określonego regionu tablicy bajtów wyjściowych. (Odziedziczone po HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów. (Odziedziczone po HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Próbuje obliczyć wartość skrótu dla określonej tablicy bajtów. (Odziedziczone po HashAlgorithm) |
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Próbuje obliczyć skrót danych przy użyciu algorytmu SHA256. |
TryHashFinal(Span<Byte>, Int32) |
Próbuje sfinalizować obliczanie skrótu po przetworzeniu ostatnich danych przez algorytm skrótu. (Odziedziczone po HashAlgorithm) |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po HashAlgorithm) |