RNGCryptoServiceProvider和Rfc2898DeriveBytes

3

使用RNGCryptoServiceProvider生成的加密密钥(2048位)是否有意义通过Rfc2898DeriveBytes.GetBytes()运行,还是Rfc2898DeriveBytes更适用于从短键(如口令)生成加密密钥?

2个回答

4

Rfc2898DeriveBytes.GetBytes() 主要用于根据加密芯片大小获取正确大小的密钥。如果您确定密钥是安全的并且密钥大小匹配,则不需要使用此方法。如果它是用户输入(例如密码),则一定要使用 Rfc2898DeriveBytes 类来派生一个适当的密钥(或使用带盐的哈希)。


3
如果您已经有适合用作密钥的东西,而似乎您已经拥有了这个东西,为什么要使用它来生成另一个密钥?个人认为,将其通过派生字节没有任何好处,因为您已经拥有一个具有密码学安全性的随机数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接