gpt4 book ai didi

PHP:从数据库检索散列密码并将其保存到数据库

转载 作者:行者123 更新时间:2023-11-29 16:54:54 29 4
gpt4 key购买 nike

我使用以下代码保存用户信息:

$hashed = password_hash($password, PASSWORD_DEFAULT);

然后是我的插入查询,如下所示:

INSERT INTO users (username, password) VALUES ('$username', '$hashed');

当我使用正常的 select 语句检索密码并将密码的值传递给密码的输入类型时,文本框将以哈希形式显示密码。然后我只对用户名进行更改并更新:

UPDATE users SET username = '$username', password = '$hashed' WHERE id = 1;

已散列的密码将被重新散列,从而更改原始密码。这会导致用户无法登录。有什么帮助吗?

最佳答案

不要在密码输入中打印数据库中的哈希密码。只需打印用户名,如果保存新用户数据,您将检查用户是否还在输入中设置了密码。如果是,则:UPDATE users SET username=...,password=... WHERE ...。如果未设置密码,则执行相同的查询(不带密码部分)。

如果您真的对当前的代码非常感兴趣,那么只需在执行 UPDATE 语句之前检查密码是否与旧的散列密码相同。如果是,则执行不带密码部分的 UPDATE 查询,如果否,则执行旧查询。

关于PHP:从数据库检索散列密码并将其保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618086/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com