散列密码的最安全方式

时间:2016-06-22 09:16:32

标签: security hash

我有那些方法(伪代码):

string predefinedsalt = "03jf0j02j302jf0j3f08h3298fbckm91jr192jr091j2-r01"

string dynsalt(user)
{
    return md5(user.id)
}

要哈希密码,我想使用以下方法之一:

  1. md5(user.password)
  2. md5(user.password + predefinedsalt)
  3. md5(user.password + dynsalt(user))
  4. md5(md5(user.password) + dynsalt(user))
  5. 这种方式更安全吗?

1 个答案:

答案 0 :(得分:3)

您的建议都不是为散列密码保存。使用具有成本因子(如BCrypt,PBKDF2或SCrypt)的慢哈希函数,并让该函数从操作系统的随机源生成盐。

密码破解工具已经开始实现与MD5的这种组合,而MD5的速度太快了。可以使用通用硬件计算100 Giga MD5 per second