【问题标题】:How many bits does CRYPT_BLOWFISH uses?CRYPT_BLOWFISH 使用多少位?
【发布时间】:2014-09-30 01:10:35
【问题描述】:

我使用 PHP 中的password_hash 函数对用户密码进行哈希处理,然后再将它们存储到数据库中。

我使用默认算法(即 CRYPT_BLOWFISH)来散列密码。对于成本值,我使用 12 而不是 10。但我不确定的一件事是加密密码的位长度。是 64、128、256 位吗?

另外,增加成本值是否会增加位长?

谢谢

【问题讨论】:

标签: php blowfish password-hash php-password-hash


【解决方案1】:

PHP BCrypt 实现将生成长度为 60 个字符的 base64 编码字符串。该字符串包含盐和成本因子等所有参数。

如果您的问题是关于用于生成密码的最大字符数,则有 72 个字符的限制。这意味着您可以散列各种长度的密码,但只有前 72 个字符用于计算(请参阅How to hash long passwords...)。

【讨论】:

  • 我知道密码的长度是72。我的问题是哈希长度是多少。例如,产生 128 位(16 字节)哈希值的 md5 函数,通常以文本格式表示为 32 位十六进制数。
  • @Mike - 实际哈希长度是 192 位编码为 31(base-64)个字符。但与 MD5 哈希不同的是,单独的 BCrypt 哈希的长度是没有意义的,因为您需要额外的信息成本因子和盐。
猜你喜欢
  • 2012-07-22
  • 2014-04-18
  • 2011-09-26
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 2016-02-13
相关资源
最近更新 更多