我想覆盖/扩展Mage_Core_Encryption_Model
以处理旧密码。
我正在将旧站点数据迁移到 magento 中。我的旧网站加密方法是 Sha-1。但是magento在核心加密方法中使用md5 + text。我已经手动更改了核心模块并正确迁移,但现在我想为此创建一个自定义模块(迁移不加密,迁移后通过 sha-1 覆盖 md5 方法)
我如何创建一个自定义模块来覆盖我更改的核心代码?
如果我理解正确,您需要一个模块来用 sha1 替换 Magento 中的 md5 哈希机制?
我不会在这里创建整个模块,而只是关键部分。如果您有兴趣作为一个完整的示例来参考,我不久前创建了一个模块,它将 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);
}
}