无法使用 sha1 哈希密码登录
Can't Login With sha1 Hashed password
我在注册时使用 sha1 对密码进行哈希处理,这是其中的一段代码:
$password = sha1 ($_POST['password']);
$query = "INSERT INTO admin (forename,surname,email,securityq, securitya,password) VALUES ('$forename','$surname','$email','$securityq','$securitya','$password')";
这是我在登录表单中的代码:
$email = $_POST['email'];
$password = sha1($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = $password ");
这仍然不允许我登录,我的 'invalid login credentials' 是尝试登录的唯一结果。
在select
之前,您需要对输入的密码进行哈希处理
$email = $_POST['email'];
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = '$password'");
在将密码与数据库中的密码进行比较之前,只需对密码进行哈希处理。
$email = mysql_real_escape_string($_POST['email']);
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$email' AND password = '$password'");
..并且不要忘记转义您的输入!
您应该考虑使用 password_hash
和 password_verify
而不是 md5,因为 md5 不再安全。
在请求之前仅哈希。
$email = $_POST['email'];
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = '$_POST[pass]' ");
还有一个建议:您应该在寄存器中添加盐,例如:
$password = md5 ($_POST['password'].'mysalt123465');
$query = "INSERT INTO admin (forename,surname,email,securityq, securitya,password) VALUES ('$forename','$surname','$email','$securityq','$securitya','$password')";
所以暴力破解关卡比较难
而且 sha1
比 md5
更安全。
在比较之前使用 md5() 函数散列您的密码。
替换以下行:
$password = $_POST['pass'];
与:
$password = md5($_POST['pass']);
这应该可以解决您的问题。 Bdw 我想建议你使用 phpass 库。
密码请使用password_hash()
,因为md5(), sha1(), sha256()
被认为是弱盐,很容易破解
我在注册时使用 sha1 对密码进行哈希处理,这是其中的一段代码:
$password = sha1 ($_POST['password']);
$query = "INSERT INTO admin (forename,surname,email,securityq, securitya,password) VALUES ('$forename','$surname','$email','$securityq','$securitya','$password')";
这是我在登录表单中的代码:
$email = $_POST['email'];
$password = sha1($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = $password ");
这仍然不允许我登录,我的 'invalid login credentials' 是尝试登录的唯一结果。
在select
之前,您需要对输入的密码进行哈希处理$email = $_POST['email'];
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = '$password'");
在将密码与数据库中的密码进行比较之前,只需对密码进行哈希处理。
$email = mysql_real_escape_string($_POST['email']);
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$email' AND password = '$password'");
..并且不要忘记转义您的输入!
您应该考虑使用 password_hash
和 password_verify
而不是 md5,因为 md5 不再安全。
在请求之前仅哈希。
$email = $_POST['email'];
$password = md5($_POST['pass']);
$query = mysql_query ("SELECT * FROM admin WHERE email = '$_POST[email]' AND password = '$_POST[pass]' ");
还有一个建议:您应该在寄存器中添加盐,例如:
$password = md5 ($_POST['password'].'mysalt123465');
$query = "INSERT INTO admin (forename,surname,email,securityq, securitya,password) VALUES ('$forename','$surname','$email','$securityq','$securitya','$password')";
所以暴力破解关卡比较难
而且 sha1
比 md5
更安全。
在比较之前使用 md5() 函数散列您的密码。
替换以下行:
$password = $_POST['pass'];
与:
$password = md5($_POST['pass']);
这应该可以解决您的问题。 Bdw 我想建议你使用 phpass 库。
密码请使用password_hash()
,因为md5(), sha1(), sha256()
被认为是弱盐,很容易破解