我现在已经了解到PasswordDeriveBytes
已被弃用,而不是Rfc2898DeriveBytes
。
在MSDN上查找Rfc2898DeriveBytes
。有一个使用TripleDES
的代码示例。
但是TripleDes
比AES
更老,更弱。为什么他们似乎向前退了一步呢?
是否只需将TripleDes
替换为AES
或Rfc2898DeriveBytes
与[{1}}有内在联系?
答案 0 :(得分:4)
基于密码的KDF只需将密码+ salt转换为可用作密钥的字节序列,或存储为密码哈希。
它与您选择的密码无关,您可以将PBKDF2与AES一起使用。一个小问题是您从PBKDF2-HMAC-SHA-1读取了多少数据。我建议只读取20个字节,并在需要时使用单独的散列来增加它们的大小。
没有理由遵循MSDN示例。他们通常不遵循良好的编码习惯。仅仅因为他们使用3DES并不意味着你应该这样做。
答案 1 :(得分:0)
PBKDF2
(Rfc2898DeriveBytes
)用于从密码(密钥派生函数)派生密钥,它生成的密钥长度以及随后的操作是您的选择,因此请使用{{1}生成密钥并使用您喜欢的对称密码。要回答你的问题,没有固有的联系。