我需要在.Net WinForms应用程序中存储单个密码的哈希。
最安全的方法是什么?
特别是:
盐,HMAC,或两者兼而有之?
多少盐?
多少次迭代?
什么编码? (密码为纯ASCII)
我假设算法应该是SHA512或HMACSHA512。
最佳答案
使用至少128位或更长的安全随机盐为哈希加盐,以避免彩虹攻击,并使用BCrypt,PBKDF2或scrypt。 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/