XAMPP对密码/盐长度设置有什么特殊要求吗?

你好,我正在学习 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);


慕哥9229398
浏览 81回答 1
1回答

POPMUISE

根据问题所附的图像,您正在尝试将(假定的)用户输入的密码存储在数据库中。这使得散列变得毫无意义,因为生成密码散列的全部目的是在数据库入侵的情况下保护密码。在您的情况下,如果您坚持使用该sha1()函数生成哈希,我建议您password从表中删除该列,并添加一个存储 40 个字符长度的字符串的新列来存储您的哈希。
打开App,查看更多内容
随时随地看视频慕课网APP