1

RSACryptoServiceProvider.VerifyData の使用に問題があります

NullReferenceException: オブジェクト参照がオブジェクト System.Security.Cryptography.RSACryptoServiceProvider.VerifyData (System.Byte[] バッファー、System.Object halg、System.Byte[] 署名) のインスタンスに設定されていません (/Applications/buildAgent/work/ で) 3df08680c6f85295/mcs/class/corlib/System.Security.Cryptography/RSACryptoServiceProvider.cs:326)

RSACryptoServiceProvider.cs の行 326 で発生した例外を確認できます。すべてのパラメーターと rsa の作成を再確認しました。すべて問題ありません。何か案は ?

私のコード:

X509Certificate2 x509 = null;
RSACryptoServiceProvider rsa = null;
byte[] certificate = Convert.FromBase64String( certificate_s );
x509 = new X509Certificate2( certificate );
rsa = (RSACryptoServiceProvider) x509.PublicKey.Key;
bool sha1Valid = rsa.VerifyData( data, CryptoConfig.MapNameToOID("SHA1"), signature );
4

1 に答える 1

3

解決しました。halg パラメータによるエラー -- CryptoConfig.MapNameToOID("SHA1") Unity C# スクリプトでは違法のようです 代わりに HashAlgorithm.Create("SHA1") を使用する必要があります

于 2013-03-04T19:10:08.627 に答える