【问题标题】:Module for overriding Mage Core Encryption Model用于覆盖 Mage 核心加密模型的模块
【发布时间】:2012-08-06 11:52:51
【问题描述】:

我想覆盖/扩展 Mage_Core_Encryption_Model 以处理旧密码。

我正在将旧网站数据迁移到 magento。我的旧网站加密方法是 Sha-1。但是magento在核心加密方法中使用md5 + text。我已经手动更改了核心模块并正确迁移,但现在我想为此创建一个自定义模块(不加密迁移,迁移后通过 sha-1 覆盖 md5 方法)

如何创建一个自定义模块来覆盖我更改的核心代码?

【问题讨论】:

  • 这里哪一部分给你带来了麻烦?很高兴知道你在做什么,下次把这么短的 QA 问题留给 Twitter 吗?试着在这里解释你的目标和你到目前为止所做的事情。
  • 我正在将旧站点数据迁移到 magento。我的旧网站加密方法是 Sha-1。但是magento在核心加密方法中使用md5 + text。我已经手动更改核心模块并正确迁移。但现在我想为此创建一个自定义模块。(在不加密的情况下迁移,迁移后通过 sha-1 覆盖 md5 方法)有什么想法为此要求创建一个自定义模块吗?
  • 编辑了你的问题 :) 现在想想,当你第一次问到这些细节时,究竟应该有人知道这些细节吗?

标签: php magento


【解决方案1】:

如果我理解正确,您需要一个模块来将 Magento 中的 md5 哈希机制替换为 sha1 吗?

我不会在这里创建整个模块,而只是关键部分。如果你有兴趣作为一个完整的例子来参考,我不久前创建了一个模块,它用你可以查看的 sha512 替换 md5 哈希 - https://github.com/drewhunter/BetterHash - 你显然需要稍微修改它来处理 sha1)

所以本质上你需要覆盖Mage_Core_Model_Encryptionhash()方法

您的模块 config.xml 将需要以下内容:

文件: app/code/local/Yourcompany/Yourmodule/etc/config.xml

<?xml version="1.0"?>

<config>
    <modules>
        <Yourcompany_Yourmodule>
            <version>1.0.0</version>
        </Yourcompany_Yourmodule>
    </modules>
    <global>
        <helpers>
            <core>
                <encryption_model>Yourcompany_Yourmodule_Model_Hash</encryption_model>
            </core>  
        </helpers>
    </global>
</config>

然后利用重写:

文件: app/code/local/Yourcompany/Yourmodule/Model/Hash.php

<?php

class Yourcompany_Yourmodule_Model_Hash extends Mage_Core_Model_Encryption
{
    public function hash($data)
    {
        return sha1($data);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    相关资源
    最近更新 更多