SHA256 クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
入力データの SHA256 ハッシュを計算します。
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
- 継承
- 派生
- 属性
例
次の例では、ディレクトリ内のすべてのファイルの SHA-256 ハッシュを計算します。
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
注釈
ハッシュは、大量のデータを表す固定サイズの一意の値として使用されます。 2 つのデータ セットのハッシュは、対応するデータも一致する場合にのみ一致する必要があります。 データを小さく変更すると、ハッシュに大きな予期しない変更が発生します。
SHA256 アルゴリズムのハッシュ サイズは 256 ビットです。
これは抽象クラスです。
コンストラクター
| 名前 | 説明 |
|---|---|
| SHA256() |
SHA256の新しいインスタンスを初期化します。 |
フィールド
| 名前 | 説明 |
|---|---|
| HashSizeInBits |
SHA-256 アルゴリズムによって生成されるハッシュ サイズ (ビット単位)。 |
| HashSizeInBytes |
SHA-256 アルゴリズムによって生成されるハッシュ サイズ (バイト単位)。 |
| HashSizeValue |
計算されたハッシュ コードのサイズをビット単位で表します。 (継承元 HashAlgorithm) |
| HashValue |
計算されたハッシュ コードの値を表します。 (継承元 HashAlgorithm) |
| State |
ハッシュ計算の状態を表します。 (継承元 HashAlgorithm) |
プロパティ
| 名前 | 説明 |
|---|---|
| CanReuseTransform |
現在の変換を再利用できるかどうかを示す値を取得します。 (継承元 HashAlgorithm) |
| CanTransformMultipleBlocks |
派生クラスでオーバーライドされると、複数のブロックを変換できるかどうかを示す値を取得します。 (継承元 HashAlgorithm) |
| Hash |
計算されたハッシュ コードの値を取得します。 (継承元 HashAlgorithm) |
| HashSize |
計算されたハッシュ コードのサイズをビット単位で取得します。 (継承元 HashAlgorithm) |
| InputBlockSize |
派生クラスでオーバーライドされると、入力ブロック サイズを取得します。 (継承元 HashAlgorithm) |
| OutputBlockSize |
派生クラスでオーバーライドされると、出力ブロック サイズを取得します。 (継承元 HashAlgorithm) |
メソッド
| 名前 | 説明 |
|---|---|
| Clear() |
HashAlgorithm クラスによって使用されるすべてのリソースを解放します。 (継承元 HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
指定したバイト配列の指定した領域のハッシュ値を計算します。 (継承元 HashAlgorithm) |
| ComputeHash(Byte[]) |
指定したバイト配列のハッシュ値を計算します。 (継承元 HashAlgorithm) |
| ComputeHash(Stream) |
指定した Stream オブジェクトのハッシュ値を計算します。 (継承元 HashAlgorithm) |
| ComputeHashAsync(Stream, CancellationToken) |
指定した Stream オブジェクトのハッシュ値を非同期的に計算します。 (継承元 HashAlgorithm) |
| Create() |
SHA256の既定の実装のインスタンスを作成します。 |
| Create(String) |
古い.
SHA256の指定した実装のインスタンスを作成します。 |
| Dispose() |
HashAlgorithm クラスの現在のインスタンスで使用されているすべてのリソースを解放します。 (継承元 HashAlgorithm) |
| Dispose(Boolean) |
HashAlgorithmによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。 (継承元 HashAlgorithm) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| HashCore(Byte[], Int32, Int32) |
派生クラスでオーバーライドされると、オブジェクトに書き込まれたデータがハッシュ アルゴリズムにルーティングされ、ハッシュが計算されます。 (継承元 HashAlgorithm) |
| HashCore(ReadOnlySpan<Byte>) |
オブジェクトに書き込まれたデータをハッシュ アルゴリズムにルーティングして、ハッシュを計算します。 (継承元 HashAlgorithm) |
| HashData(Byte[]) |
SHA-256 アルゴリズムを使用してデータのハッシュを計算します。 |
| HashData(ReadOnlySpan<Byte>, Span<Byte>) |
SHA-256 アルゴリズムを使用してデータのハッシュを計算します。 |
| HashData(ReadOnlySpan<Byte>) |
SHA-256 アルゴリズムを使用してデータのハッシュを計算します。 |
| HashData(Stream, Span<Byte>) |
SHA-256 アルゴリズムを使用してストリームのハッシュを計算します。 |
| HashData(Stream) |
SHA-256 アルゴリズムを使用してストリームのハッシュを計算します。 |
| HashDataAsync(Stream, CancellationToken) |
SHA-256 アルゴリズムを使用してストリームのハッシュを非同期的に計算します。 |
| HashDataAsync(Stream, Memory<Byte>, CancellationToken) |
SHA-256 アルゴリズムを使用してストリームのハッシュを非同期的に計算します。 |
| HashFinal() |
派生クラスでオーバーライドされると、最後のデータが暗号化ハッシュ アルゴリズムによって処理された後にハッシュ計算が完了します。 (継承元 HashAlgorithm) |
| Initialize() |
ハッシュ アルゴリズムを初期状態にリセットします。 (継承元 HashAlgorithm) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
| TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
入力バイト配列の指定した領域のハッシュ値を計算し、入力バイト配列の指定した領域を出力バイト配列の指定された領域にコピーします。 (継承元 HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
指定したバイト配列の指定した領域のハッシュ値を計算します。 (継承元 HashAlgorithm) |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
指定したバイト配列のハッシュ値の計算を試みます。 (継承元 HashAlgorithm) |
| TryHashData(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
SHA-256 アルゴリズムを使用してデータのハッシュの計算を試みます。 |
| TryHashFinal(Span<Byte>, Int32) |
最後のデータがハッシュ アルゴリズムによって処理された後、ハッシュ計算の最終処理を試みます。 (継承元 HashAlgorithm) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IDisposable.Dispose() |
HashAlgorithmによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。 (継承元 HashAlgorithm) |