2

を使おうとしていDSACryproServiceProviderます。しかし、違いがわからないので、少し混乱しています

a)dsa.VerifySignature()

b)dsa.VerifyData()

さらに、署名されたデータを返しdsa.CreateSignature()ながら、指定されたデータの署名を作成するだけだと思います。dsa.SignData()これは正しいです?

返信ありがとうございます。

4

1 に答える 1

1

違いはCreateSignature、ハッシュ値を期待することです。ハッシュを実行せず、同様にVerifySignature、ハッシュされた値が検証されることを期待します。これは、たとえば、カスタム ハッシュが必要な場合に使用できます。

SignDataVerifyDataデータ バッファーでハッシュを実行します。ハッシュ自体はSHA1次のとおりです。

DSA は SHA1 ハッシュ アルゴリズムを使用します。

DSACryptoServiceProviderただし、少し古いので、可能であれば、MSDNRSACryptoServiceProviderから引用して使用する必要があります。

新しい非対称アルゴリズムが利用可能です。DSACryptoServiceProvider クラスの代わりに RSACryptoServiceProvider クラスを使用することを検討してください。DSACryptoServiceProvider は、レガシー アプリケーションおよびデータとの互換性のためにのみ使用してください。

于 2014-06-18T16:55:47.243 に答える