His*_*air 18 encryption passwords hash
鉴于MD5的已知弱点以及SHA1中讨论的最近(2009年5月)的弱点,新程序应该如何腌制和散列密码?
我见过SHA-256和SHA-512.
主要在Ruby on Rails中编程并使用PostgreSQL - 但其他语言和环境可能还需要计算密码哈希值.
Eli*_*sky 21
SHA-256和SHA-512在可预见的未来是安全的.他们属于SHA-2家族,到目前为止尚未发现任何攻击.这个维基百科页面说,Unix和Linux厂商现在正在转向SHA-2,以便对密码进行安全散列.SHA-3系列具有更强大的算法,正在开发中,但至少要到2012年才能完成.
PS:除非你隐藏了来自政府的秘密特工名称,否则你对SHA-1也是安全的,但如果实施SHA-2没问题,那就改用它.
您应该使用基于密码的密钥派生函数作为uid/pwd结果; 最知名的是PBKDF2 http://en.wikipedia.org/wiki/PBKDF2,也定义为RFC 2898 http://tools.ietf.org/html/rfc2898.PKBDF2获取您的秘密数据以及盐和迭代计数.这是解决问题的标准方法.
如果您使用.NET编程,请使用Rfc2898DeriveBytes http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx