.net Rfc2898DeriveBytes如何既“基于HMACSHA1”又接受哈希算法?

ctehm74n  于 2023-01-27  发布在  .NET
关注(0)|答案(1)|浏览(139)

The docs for Rfc2898DeriveBytes说:
通过使用基于HMACSHA1的伪随机数生成器实现基于密码的密钥派生功能PBKDF2。
但是未废弃的构造函数都接受散列算法。
这是矛盾还是我漏掉了什么

fnvucqvd

fnvucqvd1#

检查RFC (2898)。HMAC-SHA-1只是一个可能的伪随机函数。
缺省伪随机函数为HMAC-SHA-1
在某些假设下,散列函数也可能符合伪随机函数的要求。例如,如果“文本”具有适当的结构以防止某些攻击,则直接将散列函数应用于“密钥”和“文本”的连接可能是适当的。但是,HMAC-SHA-1更可取,因为它将“key”和“text”视为单独的参数,并且不要求“text”具有任何结构。

相关问题