c# - PasswordDeriveBytes 函数

标签 c# .net encryption

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

相关文章:

c# - 是否可以从第一个元素以外的元素开始迭代使用 foreach?

c# - Linq 查询在编译时不起作用

c# - 如何从 byte[] 中读取整数

linux - Polarssl AES 计数器模式示例

c - 用模数在 C 中移动字符,输出到文件在一个输入上产生不受支持的文件格式,在另一个输入上产生 txt 文件

c# - ASP .NET Core 身份登录管理器

c# - 使用 Linq exceptBy 函数的泛型类中出现奇怪的编译器错误

c# - .NET配置系统中的拼写错误是设计缺陷吗?

.net - 使用 OleDB 从 CSV 导入行/批处理范围

android - 使用在 Ruby 中生成的 RSA public.pem 文件在 Android 中加密数据