Rfc2898DeriveBytes和TripleDes

时间:2013-02-27 10:32:21

标签: c# .net cryptography

我现在已经了解到PasswordDeriveBytes已被弃用,而不是Rfc2898DeriveBytes。 在MSDN上查找Rfc2898DeriveBytes。有一个使用TripleDES的代码示例。 但是TripleDesAES更老,更弱。为什么他们似乎向前退了一步呢? 是否只需将TripleDes替换为AESRfc2898DeriveBytes与[{1}}有内在联系?

2 个答案:

答案 0 :(得分:4)

基于密码的KDF只需将密码+ salt转换为可用作密钥的字节序列,或存储为密码哈希。

它与您选择的密码无关,您可以将PBKDF2与AES一起使用。一个小问题是您从PBKDF2-HMAC-SHA-1读取了多少数据。我建议只读取20个字节,并在需要时使用单独的散列来增加它们的大小。

没有理由遵循MSDN示例。他们通常不遵循良好的编码习惯。仅仅因为他们使用3DES并不意味着你应该这样做。

答案 1 :(得分:0)

PBKDF2Rfc2898DeriveBytes)用于从密码(密钥派生函数)派生密钥,它生成的密钥长度以及随后的操作是您的选择,因此请使用{{1}生成密钥并使用您喜欢的对称密码。要回答你的问题,没有固有的联系。