gpt4 book ai didi

PHP Salt密码加密

转载 作者:行者123 更新时间:2023-12-01 00:38:30 25 4
gpt4 key购买 nike

我的客户忘记了登录由拒绝提供帮助的其他开发人员开发的网站后端的密码。因此,我去 SQL 数据库查看是否可以直接从那里检索密码,但似乎密码已加密。见下文

3a0606b25e75eb6c1fed61886844832e

如果我知道密码是如何加密的,那会更容易,这样我就可以加密新密码并添加到 SQL 中,但是当我查看代码时(在更改密码的 PHP gile 中),有一种叫做 salt_pass 的东西可以加密密码本网站的。看下面的代码:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$db = new database();
$option_uw = array(
"table" => "users",
"fields" => "password",
"condition" => "id='{$_POST['id']}'"
);
$query_uw = $db->select($option_uw);
$rs_uw = $db->get($query_uw);
if ($rs_uw['password'] == trim(salt_pass($_POST['oldpassword']))) {
$value_pw = array(
"password" => trim(salt_pass($_POST['pass']))
);
$query_pw = $db->update("users", $value_pw, "id='{$_POST['id']}'");

if ($query_pw == TRUE) {
header("location:" . $baseUrl . "/back/user");
}
}else{
$_SESSION[_ss . 'msg_result'] = TRUE;
header("location:" . $baseUrl . "/back/user/changepassword");
}
mysql_close();
}

这是salt_pass函数

function salt_pass($pass) { 
return md5("supapongherb.com" . $pass);
}

有人知道如何根据这段代码重新生成或加密新密码吗?

附言。该网站是用MVC编程开发的,我真的有能力。如果您想查看更多文件,请告诉我。

提前致谢!

最佳答案

让我们把一些事情弄清楚

but it seems that password is encrypted

首先,您的密码是散列,而不是加密。 There is a difference .也就是说,散列是单向的。没有办法查看哈希并从中重新生成密码。

其次,他们正在使用 MD5。他们实际上并没有加盐,而是将相同的字符串附加到所有密码,然后对其进行哈希处理。 MD5 是 terrible way to hash because it's stupid easy to break .这相当于用橡皮筋固定您的前门。它不安全,因为您可以一分钟进行数百万次猜测。是的,就是这么糟糕。

第三,有了函数和已知的“盐”,您可以通过这种方式轻松创建新密码(通过 SQL,因为我猜不出他们在那里使用的是哪种古怪的 ORM)

UPDATE users
SET password = MD5(CONCAT('supapongherb.com', 'new_password_here'))
WHERE id = their_user_id_here

第四,切换到password_hash .像现在。摆脱橡皮筋并升级为门栓,后面有狂暴的比特犬,腿上有一把猎枪。

关于PHP Salt密码加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40836580/

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