Phi*_*p C 7 .net cryptography digital-signature
这可能是http://crypto.stackexchange.com的问题,但我想我先在这里尝试,因为答案可能与.NET有关,而不是加密算法本身.
在RSACryptoServiceProvider类中,有一个SignHash方法,它包括:
通过使用私钥加密来计算指定哈希值的签名.
第一个参数是数据的哈希值(看起来很公平),但第二个参数是一个字符串,表明用于创建哈希值的算法.
问题是为什么哈希算法很重要?当然,所有方法需要做的是使用其私钥加密给定值并返回结果?如果它真的需要知道,为什么RSACryptoServiceProvider没有一个方法可以做到这一点(以及适当的验证方法)?
感谢Iridium让我在这里思考正确的思路.
收件人得到两件事:
要验证邮件,收件人需要使用发件人的公钥解密签名,并根据邮件的哈希检查.
如果未向接收方指定散列算法,则无法知道如何散列消息,因此无法对其进行验证.
因此必须为收件人指定算法.
为了让发送方指定哈希算法(谁知道签名是如何创建的),而不是由其他任何人修改,它需要包含在签名中,并与哈希一起加密.
因此,为了创建有用的签名,需要在加密哈希时指定哈希算法.
归档时间: |
|
查看次数: |
1454 次 |
最近记录: |