RSACryptoServiceProvider.VerifyHash メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
デジタル署名が有効であることを確認します。
オーバーロード
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
。
例外
例
次の例は、 メソッドを使用 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
注釈
このメソッドは、 RSA メソッドによって生成されたデジタル署名を SignHash 検証します。 署名は、署名された公開キーを使用して署名からハッシュ値を取得し、その値を指定されたデータのハッシュ値と比較することによって検証されます。
有効なハッシュ アルゴリズムは と 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
。
例外
hashAlgorithm
は null
または Empty です。
padding
は Pkcs1 と一致しません。
適用対象
.NET