这可能是http://crypto.stackexchange.com的问题,但我想我会先在这里尝试,因为答案可能与 .NET 而不是加密算法本身有关。
在RSACryptoServiceProvider 类中,有一个方法SignHash,它:
通过使用私钥对其进行加密来计算指定哈希值的签名。
第一个参数是数据的哈希值(看起来很公平),但第二个参数是一个字符串,说明用于创建哈希值的算法。
问题是为什么哈希算法很重要?当然,所有方法需要做的就是使用其私钥加密给定值并返回结果?如果它确实需要知道,为什么 RSACryptoServiceProvider 没有一个方法可以做到这一点(以及适当的验证方法)?