RSACryptoServiceProvider.VerifyHash メソッド

定義

デジタル署名が有効であることを確認します。

オーバーロード

名前 説明
VerifyHash(Byte[], String, Byte[])

指定された公開キーを使用して署名のハッシュ値を決定し、指定されたハッシュ値と比較することで、デジタル署名が有効であることを確認します。

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

指定したハッシュ アルゴリズムとパディングを使用して署名のハッシュ値を決定し、指定されたハッシュ値と比較することで、デジタル署名が有効であることを確認します。

VerifyHash(Byte[], String, Byte[])

ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs

指定された公開キーを使用して署名のハッシュ値を決定し、指定されたハッシュ値と比較することで、デジタル署名が有効であることを確認します。

public:
 bool VerifyHash(cli::array <System::Byte> ^ rgbHash, System::String ^ str, cli::array <System::Byte> ^ rgbSignature);
public bool VerifyHash(byte[] rgbHash, string str, byte[] rgbSignature);
override this.VerifyHash : byte[] * string * byte[] -> bool
member this.VerifyHash : byte[] * string * byte[] -> bool
Public Function VerifyHash (rgbHash As Byte(), str As String, rgbSignature As Byte()) As Boolean

パラメーター

rgbHash
Byte[]

署名されたデータのハッシュ値。

str
String

データのハッシュ値を作成するために使用されるハッシュ アルゴリズム識別子 (OID)。

rgbSignature
Byte[]

検証する署名データ。

返品

true 署名が有効な場合。それ以外の場合は false

例外

rgbHash パラメーターはnull

-又は-

rgbSignature パラメーターはnull

暗号化サービス プロバイダー (CSP) を取得できません。

-又は-

署名を確認できません。

次の例は、 VerifyHash メソッドを使用して署名を確認する方法を示しています。 このコード例は、 SignHash メソッドで提供されるより大きな例の一部です。

public bool VerifyHash(RSAParameters rsaParams, byte[] signedData, byte[] signature)
{
    RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider();
    SHA1Managed hash = new SHA1Managed();
    byte[] hashedData;

    rsaCSP.ImportParameters(rsaParams);
    bool dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature);
    hashedData = hash.ComputeHash(signedData);
    return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature);
}
Public Function VerifyHash(ByVal rsaParams As RSAParameters, ByVal signedData() As Byte, ByVal signature() As Byte) As Boolean
    Dim rsaCSP As New RSACryptoServiceProvider()
    Dim hash As New SHA1Managed()
    Dim hashedData() As Byte
    Dim dataOK As Boolean

    rsaCSP.ImportParameters(rsaParams)
    dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature)
    hashedData = hash.ComputeHash(signedData)
    Return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature)
End Function 'VerifyHash

注釈

このメソッドは、RSA メソッドによって生成されたSignHashデジタル署名を検証します。 署名は、署名された公開キーを使用して署名からハッシュ値を取得し、その値を指定されたデータのハッシュ値と比較することによって検証されます。

有効なハッシュ アルゴリズムは SHA1 され、 MD5されます。 アルゴリズム識別子は、 MapNameToOID メソッドを使用してハッシュ名から派生できます。

SHA-1 と MD5 の競合の問題のため、Microsoft では SHA-256 以上に基づくセキュリティ モデルをお勧めします。

こちらもご覧ください

適用対象

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs
ソース:
RSACryptoServiceProvider.Unix.cs

指定したハッシュ アルゴリズムとパディングを使用して署名のハッシュ値を決定し、指定されたハッシュ値と比較することで、デジタル署名が有効であることを確認します。

public:
 override bool VerifyHash(cli::array <System::Byte> ^ hash, cli::array <System::Byte> ^ signature, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, System::Security::Cryptography::RSASignaturePadding ^ padding);
public override bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding);
override this.VerifyHash : byte[] * byte[] * System.Security.Cryptography.HashAlgorithmName * System.Security.Cryptography.RSASignaturePadding -> bool
Public Overrides Function VerifyHash (hash As Byte(), signature As Byte(), hashAlgorithm As HashAlgorithmName, padding As RSASignaturePadding) As Boolean

パラメーター

hash
Byte[]

署名されたデータのハッシュ値。

signature
Byte[]

検証する署名データ。

hashAlgorithm
HashAlgorithmName

ハッシュ値の作成に使用されるハッシュ アルゴリズム名。

padding
RSASignaturePadding

パディング。

返品

true 署名が有効な場合。それ以外の場合は false

例外

hashAlgorithmnull または Empty

hashnullです。

-又は-

paddingnullです。

paddingPkcs1と等しくありません。

適用対象