2012-01-10 10 views
0

私は署名が必要な35バイトのハッシュを持っています。 しかし、私はSHA1.net RSACryptoServiceProviderでサポートされているハッシュアルゴリズム

var rsa = new RSACryptoServiceProvider(); 
rsa.SignHash(hash, "SHA1"); 

でそれを歌うしようとすると、SHA1のサイズをダイジェストので、私は、エラー「悪いハッシュ」(明らかに)を取得することは今20

でサポートSHA1以外の他のハッシュアルゴリズムがあります。インスタンスの場合

答えて

1

出力として35バイトのハッシュ関数はわかりません。 SHA-224は28バイトです。

SignHash() - メソッドを使用する場合、ハッシュはPKCS#1 v.1.5を使用して署名されます。このシグネチャの一部は、使用されているハッシュを正確に指定する情報であるため、ハッシュがSHA-1ハッシュでない場合、SHA-1を指定して署名しないでください(SHA-225と同様)。

rsa.SignData(hash, HashAlgorithm.Create("SHA256")); 

をそして、あなたの実際の質問に答えるために:あなたの35バイトのハッシュに署名することは、サポートされているハッシュ関数でそれを焼き直し検討するかもしれないここsupported hash algorithms in .NET 4のリストです。

関連する問題