地穴盐加密登录

Crypt salt encryption login

我相信这对某些人来说可能很简单,但很好。

这对我来说很难,我想使用 ispconfig 客户端信息进行登录并且它运行良好,除了密码需要与使用 crypt / salt 加密的 ispconfig 密码相匹配,据我所知我将如何匹配这与用户输入的密码有关吗?

到目前为止我有这个但我似乎没有用:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = stripslashes($selectUserPass['password']);
$salt = '$'.substr($saved_password, 3, 8).'$';
$clientPasswordSafe = crypt(stripslashes($clientPassword), $salt);

谢谢!

如果密码真的是用 crypt() 函数散列的,那么你可以这样验证它:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = $selectUserPass['password'];
$isPasswordCorrect = crypt($clientPassword, $Passcollected) === $Passcollected;

或者使用新的密码功能更容易:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = $selectUserPass['password'];
$isPasswordCorrect = password_verify($clientPassword, $Passcollected);

请注意,我没有使用 stripslashes() 函数,在散列之前不需要转义。 salt 是存储哈希的一部分,将由验证函数自动提取。