三个SHA512管理相关问题:
答案 0 :(得分:16)
Ben的答案不正确,你应该不使用SHA *函数来散列密码。您应该使用专门用于散列密码的散列函数,例如PBKDF2,BCrypt或SCrypt。敏的答案和评论是正确的。
由于你想使用标准的.NET库,我建议使用Rfc2898DeriveBytes,它是PBKDF2的一个实现。
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx
答案 1 :(得分:6)
如果您正在寻找防止暴力攻击,请在bcrypt或scrypt处获取战利品。它们被设计成在算法上很慢。因此,即使攻击者确实获得了密码数据库,计算所有内容也需要永远。
答案 2 :(得分:3)
Sha512Managed不依赖于系统调用,并且具有内置哈希的最大哈希值。如果您没有针对其他任何事情进行优化,那么它将被认为是最安全的。
出于密码破解的目的,盐本质上会增加密码的大小。虽然“越大越好”,任何超出密码本身数量的东西都会被浪费掉。因此,对于最小8位ASCII字符密码,您可能会使用64位盐。
是和否。这对现代技术来说太过分了;字符串的大小是无关紧要的。如果您需要密码在接下来的100年内保持安全,那么请选择512。
参考: http://www.codeproject.com/KB/security/Cryptography_NET.aspx