DSACryptoServiceProvider

DSACryptoServiceProvider

我正在尝试使用DSACryproServiceProvider
但我有点困惑,因为我看不到两者之间的区别

a)dsa.VerifySignature()

b)dsa.VerifyData()

另外,我希望dsa.CreateSignature()仅为给定数据创建签名,而dsa.SignData()返回签名的数据。它是否正确?

多谢您的回覆。

最佳答案

区别在于CreateSignature需要哈希值。它不执行散列,并且类似地,VerifySignature要求验证散列值。例如,如果要自定义哈希,可以使用此方法。

SignDataVerifyData在数据缓冲区上执行散列。哈希本身是SHA1,引用:


  DSA使用SHA1哈希算法。


DSACryptoServiceProvider有点老了,如果可以的话,应该使用RSACryptoServiceProvider,并引用MSDN


  可以使用更新的非对称算法。考虑使用RSACryptoServiceProvider类而不是DSACryptoServiceProvider类。仅将DSACryptoServiceProvider用于与旧版应用程序和数据的兼容性。

关于c# - DSACryptoServiceProvider:VerifySignature与SignData,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24290834/

10-17 03:12