Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DSACryptoServiceProvider:VerifySignature与SignData_C#_Sign_Dsa - Fatal编程技术网

C# DSACryptoServiceProvider:VerifySignature与SignData

C# DSACryptoServiceProvider:VerifySignature与SignData,c#,sign,dsa,C#,Sign,Dsa,我正在尝试使用DSACryproServiceProvider。 但是我有点困惑,因为我看不出两者之间的区别 a) dsa.VerifySignature() b) dsa.VerifyData() 另外,我希望dsa.CreateSignature()只为给定数据创建签名,而dsa.SignData()返回签名数据。这是正确的吗 感谢您的回复。不同之处在于CreateSignature需要一个哈希值。它不执行散列,类似地,VerifySignature需要一个散列值进行验证。例如,如果需要自定

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

a)
dsa.VerifySignature()

b)
dsa.VerifyData()

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


感谢您的回复。

不同之处在于
CreateSignature
需要一个哈希值。它不执行散列,类似地,
VerifySignature
需要一个散列值进行验证。例如,如果需要自定义散列,可以使用此选项

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

DSA使用SHA1哈希算法

DSACryptoServiceProvider
有点旧,如果可以,您应该使用
RSACryptoServiceProvider
,引用以下内容:

新的非对称算法可用。考虑使用RSURPyTraceVeServices类,而不使用DCurrPyStoReVIEVAsvices类。DSACryptoServiceProvider仅用于与旧式应用程序和数据兼容