【问题标题】:PHP Salt password encryptionPHP Salt密码加密
【发布时间】:2017-04-11 17:16:06
【问题描述】:

我的客户忘记了登录网站后端的密码,该网站由其他拒绝提供帮助的开发人员开发。因此,我去 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); 
}

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

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

提前谢谢你!

【问题讨论】:

  • 查看insert 语法,您应该能够弄清楚密码是如何生成的。它可能已被散列,您将无法对其进行去散列处理,因为散列不加密,它只是一种方式。
  • 我刚刚发现了这个功能,不知道接下来要做什么。函数 salt_pass($pass) { return md5("supapongherb.com" . $pass); }
  • 现在您可以生成新密码,因为您知道(过时的)散列算法和使用的盐。你甚至不需要做PHP。 update users set password = md5(concate("supapongherb.com", 'NEWPASSWORD')) where userid = ??。类似的东西
  • 你不应该只给用户密码,除非你确定是他们。只需向他们发送重置链接即可。
  • 您应该花时间将它们从 MD5 升级到实际上也安全的东西。

标签: php mysql hash md5 salt


【解决方案1】:

让我们澄清一些事情

但是密码好像被加密了

首先,您的密码是散列,未加密。 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。像现在。摆脱橡皮筋并升级为锁舌,后面有狂暴的斗牛犬,腿上放着猎枪。

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2021-07-30
    • 2014-08-01
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多