我正在使用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/