Tan*_*uta 3 php mysql passwords hash
在将密码存储在MySQL数据库中之前,我使用以下方法对密码进行加密。
目前,我已将密码限制为最大长度。20个字符,因为我不确定较长的密码是否会由于加密输出而在此处引起问题。
在PHP中,我使用以下代码进行加密:
$pw = password_hash($_POST["pw"], PASSWORD_BCRYPT);
Run Code Online (Sandbox Code Playgroud)
密码在传递之前在客户端进行了修整。
有人可以告诉我是否 CHAR(60) 足以覆盖最多100个字符(数字,大写和小写字母,特殊字符)的密码吗?
另外,是否有一个共同的最大值。应为密码设置的字符限制-不会增加漏洞? 我了解到有些人肯定想使用更长的密码,例如短短语等。
顾名思义,函数password_hash()将计算密码的哈希值。无论密码的长度如何,此哈希值的长度始终相同。因此,没有理由限制密码的长度,接受任何长度的密码,只需要最小长度即可。
当前,该函数将计算BCrypt哈希,其输出将始终为60个字符。char(60)因此,数据库字段足以存储哈希。
但是,使用的哈希算法可以在将来更改,以应对将来的威胁。因此,手册建议使用参数PASSWORD_DEFAULT和字段varchar(255)。这为功能提供了必要的空间,以适应未来的发展。
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |