我使用AES(Rijndael)对称密钥算法来加密 - 解密数据。 我正在使用System.Security.Cryptography。 PasswordDeriveBytes函数;
PasswordDeriveBytes password = new PasswordDeriveBytes(
passPhrase,
saltValueBytes,
hashAlgorithm,
passwordIterations);
在MSDN等上查看此功能,它不会明确告诉您'hashAlgoritm'可以采用什么参数。 上网的例子有SHA1和SHA256。我对此进行了实验,发现可以使用SHA512。 但是没有文档,我不知道SHA512是否真的比SHA256或SHA1甚至MD5更好。 任何人都可以解释这个问题吗?
答案 0 :(得分:3)
哈希方法的安全性对于密钥派生函数来说稍微不那么重要。尽管不鼓励使用MD5,但最好选择符合所需密钥大小的密钥。其他应用程序只能使用SHA-1。
请注意,PasswordDeriveBytes
已被弃用,当然不应用于大于散列大小的输出。请使用PBKDF2,请参阅Rfc2898DeriveBytes
。