我正在使用 AES (Rijndael) 对称 key 算法来加密-解密数据。 我正在使用 System.Security.Cryptography。 PasswordDeriveBytes 函数;
PasswordDeriveBytes password = new PasswordDeriveBytes(
passPhrase,
saltValueBytes,
hashAlgorithm,
passwordIterations);
在 MSDN 等上查找此函数,它没有明确告诉您“hashAlgoritm”可以采用哪些参数。 互联网上有使用 SHA1 和 SHA256 的示例。我对此进行了实验,发现可以采用SHA512。 但如果没有文档,我不知道 SHA512 是否真的比 SHA256 或 SHA1 甚至 MD5 更好。 有人能解释一下这个问题吗?
最佳答案
对于 key 导出函数来说,哈希方法的安全性稍微不那么重要。尽管一般不鼓励使用 MD5,但最好选择与所需 key 大小相匹配的 key 。其他应用程序可能仅使用 SHA-1 。
请注意,PasswordDeriveBytes
已被弃用,并且当然不应用于大于哈希大小的输出。请改用 PBKDF2,请参阅 Rfc2898DeriveBytes
.
关于c# - PasswordDeriveBytes 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072010/