gpt4 book ai didi

PHP/MySQL : What data type to chose for encrypted passwords (bcrypt, 最大。 100 个字符)

转载 作者:可可西里 更新时间:2023-11-01 07:58:33 25 4
gpt4 key购买 nike

我使用以下方法在将密码存储到 MySQL 数据库之前对其进行加密

目前我已将密码的长度限制为最大。 20 个字符,因为我不确定更长的密码是否会由于加密输出而导致此处出现问题。

在 PHP 中,我使用以下内容进行加密:

$pw = password_hash($_POST["pw"], PASSWORD_BCRYPT);

密码在传递之前正在客户端进行修整。

谁能告诉我 CHAR(60) 是否足以覆盖最多 100 个字符(数字、大写和小写字母,特殊字符)?

此外,是否有一个共同的最大值。应该为密码设置的字符限制 - 不会增加漏洞?我了解到有些人肯定想使用更长的密码,例如短语等。

最佳答案

顾名思义,函数password_hash()将计算密码的哈希值。无论密码的长度如何,此散列始终具有相同的长度。所以没有理由限制密码的长度,接受任意长度的密码,只要求最小长度。

目前该函数将计算一个 BCrypt 哈希,其输出将始终为 60 个字符。因此,char(60) 的数据库字段足以存储哈希值。

不过,所使用的哈希算法在未来可能会发生变化,以应对 future 的威胁。这就是手册建议使用参数 PASSWORD_DEFAULT 和 varchar(255) 字段的原因。这为函数提供了面向 future 的必要空间。

$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);

关于PHP/MySQL : What data type to chose for encrypted passwords (bcrypt, 最大。 100 个字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com