2 回答
TA贡献1873条经验 获得超9个赞
我的问题的解决分为三个部分。我的OP寻求一种简单的方法,使用本机PHP函数为管理员用户创建哈希密码,以便在安装应用程序时插入MySQL数据库中。password_hash()
(1)根据@Nick和@Tadman的建议,我决定将设置哈希合并到安装程序脚本中,该脚本不仅可以设置哈希,还可以设置其他定义的站点/应用程序变量。
创建数据库表时,不是插入用户值,而是将其推迟到紧随其后,管理员用户以插入哈希并将其他定义写入文件的形式输入其凭据:
$userpass = $_POST['userpass'];
echo password_hash($userpass, PASSWORD_BCRYPT);
(2)我问题的第二部分是替换password_hash()'的所有实例,我通过使用我在网上找到的整洁的PHP脚本来递归搜索和替换服务器上的实例来实现这一点。md5()`` with
替换了实例后,我需要更改哈希比较方法,并且通过搜索相关文件,我能够替换以下实例:md5()
if ($p != $theUser->pwd ) {
return( false ); }
跟:
if(password_verify($p, $theUser->pwd)) {
// Success!
}
else {
// Invalid credentials
echo "Uh oh!";
}
(3)解决问题的第三步是发现在md5哈希的开头添加$ 1 $可以使其可读,因此我只需要在已安装的数据库中对管理员用户的旧密码进行一些调整即可。password_hash();
感谢那些帮助照亮光明的人,所以我可以找到自己的路。我现在要去发明轮子和切片面包。
TA贡献1853条经验 获得超18个赞
你可以在php中做这样的事情:
$hash = password_hash('changeMe'); //echo $hash;
然后在数据库中使用此哈希。
- 2 回答
- 0 关注
- 79 浏览
添加回答
举报