Php CRYPT_河豚使用多少比特?

Php CRYPT_河豚使用多少比特?,php,blowfish,password-hash,php-password-hash,Php,Blowfish,Password Hash,Php Password Hash,在将用户密码存储到数据库之前,我使用PHP中的函数散列用户密码 我使用默认算法(即CRYPT_BLOWFISH)对密码进行散列。对于成本值,我使用12而不是10。但有一件事我不确定,那就是加密密码的位长度。是64、128、256位吗 此外,增加成本值是否会增加位长度 感谢PHP BCrypt实现将生成长度为60个字符的base64编码字符串。此字符串包含所有参数,如salt和cost factor 如果您的问题是关于用于生成密码的最大字符数,则有72个字符的限制。这意味着您可以对每种长度的密码进

在将用户密码存储到数据库之前,我使用PHP中的函数散列用户密码

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

此外,增加成本值是否会增加位长度


感谢

PHP BCrypt实现将生成长度为60个字符的base64编码字符串。此字符串包含所有参数,如salt和cost factor


如果您的问题是关于用于生成密码的最大字符数,则有72个字符的限制。这意味着您可以对每种长度的密码进行哈希运算,但计算时只使用前72个字符(请参阅)。

您似乎可以非常轻松地对其进行测试。但这里有一个维基很好地解释了这一点:我仍然不清楚它用多少位加密。我如何测试它?我不熟悉密码学,但文档()说它总是会产生一个60个字符的字符串。这不意味着加密密码将是480位吗?我知道密码的长度是72位。我的问题是散列长度是多少。例如,md5函数生成128位(16字节)哈希值,通常以文本格式表示为32位十六进制数。@Mike-实际哈希长度为192位,编码为31(base-64)个字符。但与MD5散列不同,BCrypt散列的长度本身没有意义,因为您需要额外的信息成本因子和salt。