Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果用户忘记了密码,如何使用填充电子邮件然后使用密码\u散列密码将密码发送到用户电子邮件?_Php_Mysql - Fatal编程技术网

Php 如果用户忘记了密码,如何使用填充电子邮件然后使用密码\u散列密码将密码发送到用户电子邮件?

Php 如果用户忘记了密码,如何使用填充电子邮件然后使用密码\u散列密码将密码发送到用户电子邮件?,php,mysql,Php,Mysql,如果用户忘记了密码,如何使用fill email然后password\u hash password将密码发送给用户email 当用户注册时,我使用此方法散列密码 $password1 = $_POST['password']; $password1 = password_hash($password1, PASSWORD_DEFAULT); 那么,当用户忘记密码时,如何向用户电子邮件发送真实密码 我的代码 require_once 'connect.php'; $email = $_POST

如果用户忘记了密码,如何使用fill email然后password\u hash password将密码发送给用户email

当用户注册时,我使用此方法散列密码

$password1 = $_POST['password'];
$password1 = password_hash($password1, PASSWORD_DEFAULT);
那么,当用户忘记密码时,如何向用户电子邮件发送真实密码

我的代码

require_once 'connect.php';
$email = $_POST['email'];

$sql = "SELECT * FROM user WHERE UserEmail ='".$email."'";
$result = mysqli_query($conn,$sql);
if(mysqli_num_rows($result)>0){
    $row = mysqli_fetch_assoc($result);
    mail($email, "Your account password is ".$row['']."test", "test@example.com" );
    $result['success'] = "1";
    $result['message'] = "success";
    echo json_encode($result ,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
}
mysqli_close($conn);

你不能逆转它,这就是散列密码的全部意义。您应该要求用户重置密码,所以,只需重置密码?@catcon是正确的。您需要创建
忘记/重置
密码流,以便用户可以创建新密码。这样做是安全的。”斯坦利:是的,你不应该考虑通过电子邮件发送密码的任何解决方案,这被认为是一个不好的做法,看看@斯坦利,如果有人可以反转哈希并看到纯文本密码,那么在第一个地方散列密码会有什么意义呢?密码散列旨在防止数据库被破坏。想想如果有人访问了谷歌的数据库并复制了每个人的密码。