RSACryptoServiceProvider.VerifyHash メソッド

定義

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

オーバーロード

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

指定した公開キーを使用して署名のハッシュ値を決定し、この値と指定したハッシュ値とを比較することによって、デジタル署名が正しいことを確認します。

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

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

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

指定した公開キーを使用して署名のハッシュ値を決定し、この値と指定したハッシュ値とを比較することによって、デジタル署名が正しいことを確認します。

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 一部です。

bool VerifyHash( RSAParameters rsaParams, array<Byte>^signedData, array<Byte>^signature )
{
   RSACryptoServiceProvider^ rsaCSP = gcnew RSACryptoServiceProvider;
   SHA1Managed^ hash = gcnew SHA1Managed;
   array<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 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

注釈

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

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

SHA1 と MD5 の競合の問題により、MICROSOFT では SHA256 以上に基づくセキュリティ モデルをお勧めします。

こちらもご覧ください

適用対象

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

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

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 と一致しません。

適用対象