代码这里是加密密码,但是我如何解密或比较它以登录laravel
使用的代码
getsql(md5($_POST['regpassword'] . SALT), "default"),
答案 0 :(得分:0)
md5正在散列,并且不可逆,您无法解密,只能使用相同的算法对散列的密码进行散列,然后对结果进行比较以确保它是正确的密码
答案 1 :(得分:0)
验证密码时,您可以执行以下操作:
$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT * FROM users WHERE username = '{$_POST['username']}' AND password = '$hashed'";
我已对此进行了简化,以显示如何检查密码的重要部分,实际上,您应该使用准备好的语句来防止SQL注入。
另一种方法是从数据库中获取哈希密码,然后将其与给定的哈希密码加盐分密码进行比较:
$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT password FROM users WHERE username = '{$_POST['username']}'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if ($row && $hashed == $row['password']) {
// user is validated
}
如果您将存储密码的方法固定为使用比静态SALT
更合理的方法,则可以轻松更新第二种方法。可以使用$hashed == $row['password']
代替password_verify($_POST['password'], $row['password'])
。