【问题标题】:Password_hash and default salt is it enough? [duplicate]密码哈希和默认盐就够了吗? [复制]
【发布时间】:2014-04-21 23:38:31
【问题描述】:

我想知道

password_hash("custompassgoeshere", PASSWORD_BCRYPT)

足够安全,可以将密码存储到数据库中,或者我是否应该在其中添加更多 SALT(我在想用户的用户名/电子邮件/出生日期/等等)。

谢谢!

【问题讨论】:

  • 建议为每个用户使用独特的盐。您可以为每个用户生成一个唯一的盐并将其存储在数据库中。
  • 可能会增加成本,但建议使用默认的密码生成盐密码_哈希()而不是创建自己的盐
  • 加盐一个已经加盐的哈希是没有意义的。自动加密盐。
  • @DamienBlack - 这就是password_hash() 已经做的事情,它从操作系统的随机源生成一个安全的盐,并将其添加到生成的哈希字符串中。你不能自己生成更好的盐,所以你不应该将一个传递给函数。

标签: php bcrypt password-hash


【解决方案1】:

Bcrypt 本身就足够安全了。确保将迭代/成本提高到足够高的水平(但对您的服务器来说不会太慢)。您可能需要测试一些值来测试可接受的哈希时间。

您确实不需要对您的密码进行加盐,Bcrypt 会自动为每个散列生成唯一的加盐,并将其与散列一起存储。

见:How can bcrypt have built-in salts?

【讨论】:

  • 感谢您的回复和链接伙伴。知道如何检查哪个是我的服务器的最佳成本价值吗?
  • 当然,只需创建一个简单的页面并散列一个字符串,看看需要多长时间。您可以手动执行此操作。您还可以使用microtime 保存哈希之前的开始时间,并在哈希之后再次使用microtime 来查看需要多长时间。 PHP 在他们的文档页面上也有一个如何计算成本的好例子:docs.php.net/manual/en/function.password-hash.php 请参见示例 #4
  • 对于投反对票的人,请注意添加评论,说明为什么这不是一个有用的答案?
猜你喜欢
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 2012-11-07
  • 2011-01-09
  • 2010-11-30
相关资源
最近更新 更多