c# - DSACryptoServiceProvider : VerifySignature vs. 签名数据

标签 c# sign dsa

我正在尝试使用 DSACryproServiceProvider。 但我有点困惑,因为我看不出

a) dsa.VerifySignature()

b) dsa.VerifyData()

此外,我希望 dsa.CreateSignature() 只是为给定数据创建签名,而 dsa.SignData() 返回签名数据。这是正确的吗?

感谢您的回复。

最佳答案

不同之处在于 CreateSignature 需要一个散列值。它不执行散列,同样,VerifySignature 需要一个散列值来验证。例如,如果您想要自定义哈希,可以使用它。

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

DSA uses the SHA1 hash algorithm.

DSACryptoServiceProvider 虽然有点旧,如果可以的话,您应该使用 RSACryptoServiceProvider,引用自 MSDN :

Newer asymmetric algorithms are available. Consider using the RSACryptoServiceProvider class instead of the DSACryptoServiceProvider class. Use DSACryptoServiceProvider only for compatibility with legacy applications and data.

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

相关文章:

c# - 从 gui 异步执行方法的最佳方法

c# - IronPython 无法导入模块 os

javascript - 如何从javascript函数向Action发送参数?

c# - "代替引号 (")

iphone - 验证网络请求是否由 iOS 应用程序发送

c - 使用 OpenSSL 进行 DSA 签名

c# - 按百分比递增、递减

c# - 使用 PSS 填充的 .net RSA 签名数据错误

java - Java排序中的链表实现不起作用

java - DSA算法java中生成P