1

我正在使用 DSA 为二进制 blob 创建签名,并且试图弄清楚使用 DSASignatureFormatter 的 CreateSignature(byte[]) 而不是仅使用 DSACryptoServiceProvider 的 CreateSignature(byte[]) 可以获得什么

据我所知,使用 DSASignatureFormatter 的唯一好处是我可以使用 SetHashAlgorithm() 指定散列算法,然后格式化程序会为我处理数据散列。在 DSACryptoServiceProvider 场景中,我必须先对数据进行预散列,然后再将其传递给 CreateSignature 方法。

使用格式化程序还有什么其他好处吗?

4

1 回答 1

2

DSASignatureFormatter 是一个更受限制的完整加密算法类。它只关心签名有效负载,它的逆 (DSASignatureDeformatter) 只关心验证签名。

我想如果有一天您想切换到 RSAPKCS1SignatureFormatter,您将能够针对基类完成所有工作并且相当容易地切换。

AsymmetricSignatureFormatter 和 AsymmetricSignatureDeformatter 是简单的类,无论如何都相当容易编码,并且代表了 SymmetricAlgorithm 类的不同抽象层。

于 2009-06-16T05:39:18.640 回答