这是针对注册页面的
$query = $db->prepare ('INSERT INTO user(user_first_name, user_last_name,user_password) VALUES (:f_name, :l_name, :u_pass)');
$query -> bindParam(':f_name', $_POST['user_fname']);
$query -> bindParam(':l_name', $_POST['user_lname']);
$passSh1 = sha1($_POST['user_pass']);
$query -> bindParam(':u_pass', $passSh1);
和这个用于登录页面
$query1 -> bindParam(':f_name', $_POST['user_fname']);
$passSh2 = sha1($_POST['user_pass']);
$query1 -> bindParam(':u_pass', $passSh2);
echo $passSh2 . '</br';
当我使用注册页面尝试使用密码"Z"时,我得到这个"395DF8F7C51F0070"
当我尝试使用登录页面时,我得到'395DF8f7C51F007019CB30201C49E884B46b92FA'
检查数据库中user_password字段允许的长度,它肯定看起来像是在截断它,我认为唯一可能的方法是您正在使用VARCHAR(16)
或其他东西。
sha1 是一个 40 个字符长的哈希。你应该使用 CHAR(40) 。