【问题标题】:questions about password_hash() [closed]关于 password_hash() 的问题 [关闭]
【发布时间】:2015-07-08 18:45:59
【问题描述】:

我只是对 password_hash() 函数有一个小问题,它会为我创建随机盐吗?我的意思是我不必指定这样的内容:

'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)  

因为我认为该函数会为密码的 EACH 创建一个随机且不同的盐?

另一个问题,如果我在函数password_hash中这样使用PASSWORD_DEFAULTpassword_hash("rasmuslerdorf", PASSWORD_DEFAULT)是不是喜欢使用password_hash("rasmuslerdorf", PASSWORD_BCRYPT)

【问题讨论】:

  • 我建议将第二个问题拉到新帖子中。
  • 这一切都在 Pablo 的手册中。
  • 我投票结束这个问题作为题外话,因为 OP 应该有 read the very fine manual
  • Google如何帮你找到this guide!!
  • 你为什么还是回答了? stackoverflow.com 是你的吗?或者你是网络的主人?你一定是这样的人。

标签: php security hash passwords bcrypt


【解决方案1】:

盐是自动生成的,但您可以在选项中指定您自己的。 从 PHP 5.5 开始,默认算法是 BCRYPT,但它会随着时间而改变。

【讨论】:

    【解决方案2】:

    password_hash() 每次调用都会自动生成一个随机盐,除非你在第三个参数中手动指定一个,$options

    PASSWORD_DEFAULT 等效于 PHP 5.5 的 PASSWORD_BCRYPT,但将来可能会改变。 您不应假定 PASSWORD_DEFAULT 将始终在 PHP 的未来版本中使用 bcrypt 算法

    【讨论】:

      【解决方案3】:

      根据文档,如果您不指定任何盐,它将每次生成一个随机盐:

      salt - 在散列密码时手动提供要使用的盐。 请注意,这将覆盖并防止盐被 自动生成。

      如果省略,password_hash() 将生成随机盐 每个密码都经过哈希处理。这是预期的操作模式。

      http://php.net/manual/en/function.password-hash.php

      【讨论】:

        【解决方案4】:

        来自the very fine manual -

        如果省略,password_hash() 将为每个散列的密码生成一个随机盐。这是预期的操作模式。

        另外(你的第二个问题)更多来自the very fine manual -

        PASSWORD_DEFAULT(整数)

        如果没有提供算法,则用于散列的默认算法。当支持更新、更强大的哈希算法时,这可能会在较新的 PHP 版本中发生变化。

        ...

        此常量的值:

        PHP 5.5.0 - PASSWORD_BCRYPT

        【讨论】:

          猜你喜欢
          • 2021-03-27
          • 2023-03-23
          • 1970-01-01
          • 2021-07-26
          • 1970-01-01
          • 2011-10-17
          • 2013-05-13
          • 2015-01-13
          • 1970-01-01
          相关资源
          最近更新 更多