.net - 安全密码哈希

标签 .net security passwords hash

我需要在.Net WinForms应用程序中存储单个密码的哈希。

最安全的方法是什么?

特别是:


盐,HMAC,或两者兼而有之?
多少盐?
多少次迭代?
什么编码? (密码为纯ASCII)


我假设算法应该是SHA512或HMACSHA512。

最佳答案

使用至少128位或更长的安全随机盐为哈希加盐,以避免彩虹攻击,并使用BCryptPBKDF2scrypt。 PBKDF2带有NIST approval

引用:Archive.org: http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html


问题是MD5速度很快。它的现代竞争对手也是如此,例如
SHA1和SHA256。速度是设计
安全哈希的目标,因为
哈希是几乎
每个密码系统,通常会得到
在每个数据包上按需执行
每个消息的基础。

速度正是密码散列功能所不想要的。


快速密码验证功能是一个问题,因为可以使用蛮力攻击它们。通过以上所有算法,您可以控制“慢度”

关于.net - 安全密码哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1841595/

相关文章:

c# - .NET:PasswordDeriveBytes 和 Rfc2898DeriveBytes 之间的区别

security - 通过 TLS 对参数和内容进行哈希验证的优势

security - 在所有节点上使用相同主体的Hadoop安全性

.net - Entity Framework 插入需要选择权限

security - 我们可以采取什么措施来防止多个用户被分配相同的密码?

c# - 网络核心 API : Purpose of ProducesResponseType

c# - 如何在 C# 中找到以编程方式运行应用程序的路径

.net - Microsoft Sync Framework 2.1 - 示例项目、编写提供程序、更改跟踪、元数据

algorithm - 什么是密码散列?

security - 当老板让我在软件中默认密码与用户名相同时,我该怎么办?