PasswordDeriveBytes函数

时间:2013-02-25 16:49:10

标签: c# .net encryption

我使用AES(Rijndael)对称密钥算法来加密 - 解密数据。 我正在使用System.Security.Cryptography。 PasswordDeriveBytes函数;

        PasswordDeriveBytes password = new PasswordDeriveBytes(
                                                        passPhrase,
                                                        saltValueBytes,
                                                        hashAlgorithm,
                                                        passwordIterations);

在MSDN等上查看此功能,它不会明确告诉您'hashAlgoritm'可以采用什么参数。 上网的例子有SHA1和SHA256。我对此进行了实验,发现可以使用SHA512。 但是没有文档,我不知道SHA512是否真的比SHA256或SHA1甚至MD5更好。 任何人都可以解释这个问题吗?

1 个答案:

答案 0 :(得分:3)

哈希方法的安全性对于密钥派生函数来说稍微不那么重要。尽管不鼓励使用MD5,但最好选择符合所需密钥大小的密钥。其他应用程序只能使用SHA-1。

请注意,PasswordDeriveBytes已被弃用,当然不应用于大于散列大小的输出。请使用PBKDF2,请参阅Rfc2898DeriveBytes