你好,我正在学习 XAMPP 并创建用户数据库。对于用户的密码和盐,我很困惑。老师说盐长度应该与密码长度相同。例如,如果我将密码长度 max 设置为 20,那么 salt 也应该为 20。但在我将密码数据插入数据库的测试下。无论salt长度如何变化,echo cryptoPassword($password . $salt),长度始终为40。如果我在数据库中设置密码长度小于40,则无法将encryptedPassword插入数据库密码中。我必须将数据库密码长度调整为40或更长,然后插入数据才能工作。那么是因为盐长度总是保持40吗?那么数据库中的密码长度必须大于/等于40?
PHP code
$email = htmlentities($_REQUEST['email']);
$firstName = htmlentities($_REQUEST['firstName']);
$lastName = htmlentities($_REQUEST['lastName']);
$password = htmlentities($_REQUEST['password']);
$birthday = htmlentities($_REQUEST['birthday']);
$gender = htmlentities($_REQUEST['gender']);
$salt = openssl_random_pseudo_bytes(20);
$encryptedPassword = sha1($password . $salt);
POPMUISE