密码哈希方法

kum*_*mo2 1 security encryption hash

我需要在用户第一次注册到系统时将散列密码存储在数据库中.标准方法是使用Password和a salt,追加它们并使用散列算法,其输出保存在数据库中.

我将使用Cryptographically Secure Pseudo-Random Number Generator(CSPRNG)来生成salt.使用生成的盐CSPRNG非常安全,salts因为我从源链接中读取.由于salt很难预测,使用MD5散列最终String(Password || salt)是一个很好的决定还是有更好的选择?

注意:

我正在考虑选择哈希算法的参数:
1)安全性应该非常好.
2)散列算法应该足够快,不会妨碍用户体验.

Luk*_*ark 5

这已经在互联网上一次又一次地被覆盖,但是我们再来一次......

使用bcrypt,argon2或PBKDF2.使用CSPRNG生成盐.使用哈希存储盐是很好的.如果没有有意的迭代计数,请不要使用MD5,SHA256或其他任何内容.

  • 好吧,它不会生成真正的随机字符串.因此伪.但这无关紧要.这个想法是计算MD5哈希根本不需要时间.使用上述算法之一进行计算可能需要开发人员喜欢.通常在~100ms左右. (3认同)
  • @Manya 1.你想要**消耗大约100毫秒的CPU时间,这就是使暴力攻击没有吸引力的原因.2.使用散列密码以及迭代计数和算法指示符记录盐. (3认同)