3

Mage_Core_Encryption_Modelレガシー パスワードを処理するために上書き/拡張したい。

古いサイトのデータを magento に移行しています。私の古いサイトの暗号化方式は Sha-1 です。ただし、magento はコア暗号化方式で md5 + テキストを使用します。コア モジュールを手動で変更し、正しく移行しましたが、そのためのカスタム モジュールを作成したいと思います (暗号化せずに移行し、移行後に sha-1 で md5 メソッドをオーバーライドします)。

変更したコア コードを上書きするカスタム モジュールを作成するにはどうすればよいですか?

4

1 に答える 1

10

私の理解が正しければ、Magento の md5 ハッシュ メカニズムを sha1 に置き換えるモジュールが必要ですか?

ここではモジュール全体を作成することはしませんが、重要な部分だけを作成します。参照する完全な例として興味がある場合は、md5 ハッシュを sha512 に置き換えるモジュールをしばらく前に作成しました - https://github.com/drewhunter/BetterHash - 明らかに少しsha1) を処理するように変更します。

したがって、本質的に、のhash()メソッドをオーバーライドする必要がありますMage_Core_Model_Encryption

モジュールの 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);
    }
}
于 2012-08-06T12:38:26.343 に答える