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

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


在MSDN等上查找此函数,它不会明确告诉您“ hashAlgoritm”可以采用哪些参数。
互联网上有使用SHA1和SHA256的示例。我对此进行了试验,发现它可以使用SHA512。
但是没有文档,我不知道SHA512是否真的比SHA256或SHA1甚至MD5更好。
有人可以阐明这个问题吗?

最佳答案

散列方法的安全性对于密钥派生函数的重要性稍差一些。尽管通常不建议使用MD5,但最好选择与所需密钥大小匹配的密钥。其他应用程序只能使用SHA-1。

请注意,PasswordDeriveBytes已被弃用,并且绝对不应将其用于大于散列大小的输出。而是使用PBKDF2,请参见Rfc2898DeriveBytes

关于c# - PasswordDeriveBytes函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15072010/

10-09 06:05