【问题标题】:Finding secret message for password hash (knowing password and hashed password)查找密码哈希的秘密消息(知道密码和哈希密码)
【发布时间】:2020-04-27 01:56:28
【问题描述】:

我目前正在使用 Evo CMS。我想创建一个备用后端,以比 Evo 的默认后端更优雅的方式显示数据。

我目前的问题是,如果我希望登录使用现有详细信息,我需要弄清楚密码是如何被散列的,我似乎在源代码的任何地方都找不到。

有什么方法可以让我找到知道散列密码和纯文本密码的密钥?

认为 Evo 正在使用 Blowfish 加密。

【问题讨论】:

    标签: hash passwords modx-revolution


    【解决方案1】:

    你所说的“秘密信息”叫做盐。但是,您处理此问题的方式并不理想,因为只有在 MODX 的密码加密和加盐方法保持不变时,才能对登录功能(MODX 的一项功能,将来可能会更改或更新)进行逆向工程。

    如果您想使用 MODX 的登录功能,但在成功登录后显示不同的后端,最简单的方法是创建一个附加到 OnManagerLogin 事件的插件。 在该插件中,您可以编写一些代码以重定向到不同的管理界面。确保正确保护该管理界面。我建议在插件中实现一种令牌生成类型,为您的自定义后端生成令牌。 这样,只有具有有效令牌(在重定向之前生成)的用户才能使用您的自定义后端。

    如果您想使用自定义登录表单,我建议您创建自己的登录功能或导入 MODX API 并运行security/login 处理器以通过 MODX 验证您的用户。 以下示例(未经测试!)可以在 MODX 之外的 PHP 脚本中使用。如果您打算使用它,则需要调整标有xxxxx 的路径。

    require_once '/xxxxx/config.core.php';
    require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php';
    require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
    $modx = new modX();
    $modx->initialize('web');
    
    $output = $modx->runProcessor('security/login', array(
                'username' => 'xxxxx',
                'password' => 'xxxxx'
            ), array (
                'processors_path' => '/xxxxx/core/model/modx/processors'
            ));
    var_dump($output);
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 2015-11-30
      • 2018-01-31
      相关资源
      最近更新 更多